数组指针的本质是指针,char(*P)[]是指针,还是个指向数组的指针,这么理解的话与char*p有啥区别呀?

 我来答
shine1991
科技发烧友

2012-03-17 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
指向数组的指针,本质上不就是指针么
char(*P)[]就是一个数组指针,也就是一个指向数组的指针,但是你没有写数组的元素个数,这个是错误的

数组指针和普通的指针基类型是不同的,也就是说两者进行算术运算时结果会不同
比方说同样是进行+1操作,实际上加的地址值偏移量是不同的
追问
那char(*p)[3]是不是 有三个指针可以指向三个字符串???????
追答
不是,这是一个数组指针本质上是一个指针

如果要实现你所说的,应该是定义为char *p[3];
zhangdebo321
2012-03-17 · TA获得超过203个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:197万
展开全部
char(*P)[]和char *P[]是有本质区别的,一个是数组指针,一个是指针数组。指针数组,说明这个声明中有多个指针,数组指针,指数组名的指针,即数组首元素地址的指针。char *p只是一个指针。
追问
那么 char(*p)[]和char a[][]有啥联系和区别呢?
追答
大致的理解那就是 char(*P)[]和char *P[]的区别,只是a【】【】是固定长度的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a70ce28
2012-03-17 · TA获得超过992个赞
知道小有建树答主
回答量:619
采纳率:0%
帮助的人:562万
展开全部
char(*P)[]是指向数组的指针P
你这种声明方式可以直接把P声明为指向指针的指针,也就是char **P
与char *p有本质的区别 一个是指向指针的指针,一个是指向字符的指针
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张志发083
2012-03-17
知道答主
回答量:10
采纳率:0%
帮助的人:1.6万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式