鱼C论坛

 找回密码
 立即注册
查看: 3077|回复: 6

为什么这个函数要定义一个指针,但反回的不是地址,

[复制链接]
发表于 2016-7-15 12:57:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. char *CreateVarifyCode(char dest[],int len)
  2. {
  3.      int i, isNum, isUpp;
  4.      for(i = 0; i < len; ++i)
  5.      {
  6.            isNum = rand() % 2;//isNum的值非0即1
  7.            if(isNum)
  8.            {
  9.                     dest[i] = rand() % 10 + '0';
  10.            }
  11.            else
  12.            {
  13.                isUpp = rand() % 2;
  14.                if(isUpp)
  15.                {
  16.                         dest[i] = rand() % 26 + 'A'; //生成一个随机的大写字母
  17.                }
  18.                else
  19.                {
  20.                    dest[i] = rand() % 26 + 'a'; //生成一个随机的小写字母
  21.                }
  22.            }
  23.      }
  24.      dest[i] = '\0';
  25.      return dest;
  26. }
复制代码







为什么 有人知道吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-7-15 13:25:02 | 显示全部楼层

楼主,别掉进误区!

char* p;
char arr[];

在你理解,是不是 return p 就是返回地址,return arr 就不是返回一个地址了?

arr - &arr[0] 不是一样吗? 别思维固化了,会让自己钻牛角尖的。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-7-15 13:28:57 | 显示全部楼层
n0noper 发表于 2016-7-15 13:25
楼主,别掉进误区!

char* p;

那为什么它还要给定义个指针类型的函数·······
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-15 13:31:10 | 显示全部楼层
ljx6517999 发表于 2016-7-15 13:28
那为什么它还要给定义个指针类型的函数·······

因为调用它的地方 需要啊

char[] fun()
这样也行啊 ,但貌似C不支持吧?

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-15 15:46:11 | 显示全部楼层
char dest [] 作为函数形参传入时就已经退化为指针 char *dest;所以返回的就是一个指针
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-23 07:37:30 | 显示全部楼层
返回的就是指针
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2016-7-23 11:43:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-14 16:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表