C++指针数组问题

char*p=&a;可知定义指针变量初始化是把地址赋给p那么指针数组每一个元素是一个指针,即地址,那么等号右边的应该是对于一个地址赋给一个指针元素,如下所示,请问怎么解释... char *p = &a;可知定义指针变量初始化是把地址赋给p
那么指针数组每一个元素是一个指针,即地址,那么等号右边的应该是对于一个地址赋给一个指针元素,如下所示,请问怎么解释呢?
char *name[]={″BASIC″,″FORTRAN″,″C++″,″Pascal″,″COBOL″};
还有可以举例解释指针数组 和数组指针吗?如int *p[4] int (*p)[4]
展开
 我来答
hatemina
2012-01-30 · TA获得超过5341个赞
知道大有可为答主
回答量:1967
采纳率:0%
帮助的人:1736万
展开全部
char *name[]={″BASIC″,″FORTRAN″,″C++″,″Pascal″,″COBOL″};
里面的元素为字符串,字符串以字符串指针形式存储的,所以实际上这是一个存有4个字符串指针的数组,所以称为指针数组。

数组元素全为指针的数组称为指针数组。
数组指针是指向数组首元素的地址的指针。
int *p[4]是指针数组,[]的优先级比*的优先级高,p先与[]结合,形成数组p[2],有两个元素的数组,再与*结合,表示此数组是指针类型的,每个数组元素相当于一个指针变量。
int (*p)[4]是数组指针。p先与*结合,表示p是指针类型,再与[]结合,表明指向的是一个具有四个int类型元素的数组。
guanghui513
2012-01-30 · TA获得超过251个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:137万
展开全部
char *name[]={″BASIC″,″FORTRAN″,″C++″,″Pascal″,″COBOL″};
这个是指针数组,这里其实还是吧每一个字符串的首地址赋值给了指针数组里的指针三,只不过写法好像是把字符串给了数组,在内存里其实是指针数组里的指针指向不通的字符串而已。
指针数组 和数组指针 int *p[4] int (*p)[4] 其实就是一个是指针,一个是数组。
int *p[4]是指针数组,就是和上面一样的,只不过这个指针指的是int类型的变量地址,上面是字符串的地址,其实是一样的。
int (*p)[4]是数组指针,他就指针,既然是指针就是必须复制地址,而地址就是这个int [4]这个数组的地址而已。反正我觉得很好理解啊:)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Go浪人生
2012-01-30 · TA获得超过2472个赞
知道小有建树答主
回答量:738
采纳率:100%
帮助的人:908万
展开全部
字符串属于特殊的指针。大括号里的每一个字符串都是一个地址(指针),这样做是一次性给数组赋值。数组指针指向的是数组。如:int a[2][4]; int (*p)[4]; p=&a[0]; 那么 p++ 的结果就是 &a[1]。也就是说p每加1,表示它指向的地址增加4个int大小也就是16字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlxf217dc
2012-01-30 · TA获得超过104个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:125万
展开全部
因为″BASIC″本身就代表了这个字符串的首地址,你可以试试
char *p = ″BASIC″, *q = ″BASIC″;
if(p == q) printf("string is an address");
指针数组指的这个p数组的元素都是指针,数组指针表示这个p是一个指针,指针的类型是一个数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式