为什么这个函数要定义一个指针,但反回的不是地址,
char *CreateVarifyCode(char dest[],int len){
int i, isNum, isUpp;
for(i = 0; i < len; ++i)
{
isNum = rand() % 2;//isNum的值非0即1
if(isNum)
{
dest = rand() % 10 + '0';
}
else
{
isUpp = rand() % 2;
if(isUpp)
{
dest = rand() % 26 + 'A'; //生成一个随机的大写字母
}
else
{
dest = rand() % 26 + 'a'; //生成一个随机的小写字母
}
}
}
dest = '\0';
return dest;
}
为什么 有人知道吗
楼主,别掉进误区!
char* p;
char arr[];
在你理解,是不是 return p 就是返回地址,return arr 就不是返回一个地址了?
arr - &arr 不是一样吗? 别思维固化了,会让自己钻牛角尖的。
n0noper 发表于 2016-7-15 13:25
楼主,别掉进误区!
char* p;
那为什么它还要给定义个指针类型的函数······· ljx6517999 发表于 2016-7-15 13:28
那为什么它还要给定义个指针类型的函数·······
因为调用它的地方 需要啊
char[] fun()
这样也行啊 ,但貌似C不支持吧?
char dest [] 作为函数形参传入时就已经退化为指针 char *dest;所以返回的就是一个指针 返回的就是指针
页:
[1]