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这里的*是取内容运算符吗?如果不加的话就会错误
展开
 我来答
百度网友89281b9c3
2011-02-22 · TA获得超过215个赞
知道小有建树答主
回答量:160
采纳率:100%
帮助的人:133万
展开全部
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;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式