永发信息网

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

答案:2  悬赏:0  手机版
解决时间 2021-03-29 07:50
  • 提问者网友:我是女神我骄傲
  • 2021-03-29 03:25
关于char*p[];char**p;char(*p)[];的区别以及在函数调用时的区别,
最佳答案
  • 五星知识达人网友:躲不过心动
  • 2021-03-29 03:55
char *p[] 是数组,元素类型为字符指针。作变量定义时需要有元素数量,或者有初始化表达式以确定元素数量。
char **p 是指针,其指向的一个字符指针。通常用于遍历像上面这样的数组。
char (*p)[] 是指针,其指向的是名义上的数组(因为没有具体数组元素数目)。作变量定义时需要明确其所指的数组的元素数目,这对像之后的 p++ 这类操作的结果有决定性影响。通常用于遍历二维数组。

以上这三个,作函数参数声明时,方括号内可为空。
若为空,则以上三个语义完全相同,C编译器无法对它们进行区别,对应的实参类型都必须是一个指针变量的地址。C99规定,作参数声明时,“指向T的指针”和“T的数组”没有区别。
若方括号内指定了具体元素数目,则效果等于变量定义时的效果。再加一个char p[][8],做函数参数声明时 等价于 char (*p)[8]。
全部回答
  • 1楼网友:几近狂妄
  • 2021-03-29 05:21
第一个指针数组
第二个指向(指向char的指针)的指针
第三个指向char数组的指针
这三个都不一样 根据函数的参数和返回值类型选择
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯