error C2440: 'return' : cannot convert from 'char *[]' to 'char *'
char*name(char*pd[],inti){return((i>=1&&i<=7)?*(pd+i):*pd);}return这里的*是取内容运算符吗?如果不加的话...
char *name(char *pd[],int i)
{
return ((i>=1 && i<=7)? *(pd+i):*pd);
}
return这里的*是取内容运算符吗?如果不加的话就会错误 展开
{
return ((i>=1 && i<=7)? *(pd+i):*pd);
}
return这里的*是取内容运算符吗?如果不加的话就会错误 展开
1个回答
展开全部
char *pd[]是一个指向指针的数组,*(pd+i)表示取这个数组的第i个元素,这个元素是一个char*指针
更多追问追答
追问
如果是(pd+i)呢?没有*时指的是什么?
char *pd[]不是普通的指针数组吗?
追答
(pd+i)也是一个char*[]类型的指针,是数组第i个元素位置的指针;
char []是普通的char数组,而char*[]是char*类型的数组;
char *是指向字符串的指针;
char*与char[]是有区别的,char[]在栈上分配数组内存空间,而char*可以在堆上分配内存空间
char*[]是char*类型的指针数组,
如有char*a="abcd",*b="1234"; char*pd[2]; 则可以这样赋值:pd[0]=a; pd[1]=b;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询