关于char*p[];char**p;char(*p)[];的区别以及在函数调用时的区别,

在函数调用时;char*p[];char**p;char(*p)[];作为形参,那么对应的实参类型分别是什么?... 在函数调用时;char*p[];char**p;char(*p)[];作为形参,那么对应的实参类型分别是什么? 展开
 我来答
百度网友21a360264
推荐于2018-03-23 · TA获得超过1855个赞
知道小有建树答主
回答量:640
采纳率:100%
帮助的人:367万
展开全部
char *p[] 是数组,元素类型为字符指针。作变量定义时需要有元素数量,或者有初始化表达式以确定元素数量。
char **p 是指针,其指向的一个字符指针。通常用于遍历像上面这样的数组。
char (*p)[] 是指针,其指向的是名义上的数组(因为没有具体数组元素数目)。作变量定义时需要明确其所指的数组的元素数目,这对像之后的 p++ 这类操作的结果有决定性影响。通常用于遍历二维数组

以上这三个,作函数参数声明时,方括号内可为空。
若为空,则以上三个语义完全相同,C编译器无法对它们进行区别,对应的实参类型都必须是一个指针变量的地址。C99规定,作参数声明时,“指向T的指针”和“T的数组”没有区别。
若方括号内指定了具体元素数目,则效果等于变量定义时的效果。再加一个char p[][8],做函数参数声明时 等价于 char (*p)[8]。
百度网友26ad406
2012-05-26 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1080万
展开全部
第一个指针数组
第二个指向(指向char的指针)的指针
第三个指向char数组的指针
这三个都不一样 根据函数的参数和返回值类型选择
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式