ljx6517999 发表于 2016-7-15 12:57:44

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

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;
}






为什么 有人知道吗

n0noper 发表于 2016-7-15 13:25:02


楼主,别掉进误区!

char* p;
char arr[];

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

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

ljx6517999 发表于 2016-7-15 13:28:57

n0noper 发表于 2016-7-15 13:25
楼主,别掉进误区!

char* p;


那为什么它还要给定义个指针类型的函数·······

n0noper 发表于 2016-7-15 13:31:10

ljx6517999 发表于 2016-7-15 13:28
那为什么它还要给定义个指针类型的函数·······

因为调用它的地方 需要啊

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

Krant5 发表于 2016-7-15 15:46:11

char dest [] 作为函数形参传入时就已经退化为指针 char *dest;所以返回的就是一个指针

impossible 发表于 2016-7-23 07:37:30

返回的就是指针

m9128213 发表于 2016-7-23 11:43:28

页: [1]
查看完整版本: 为什么这个函数要定义一个指针,但反回的不是地址,