C语言关于指针的一个问题

#include"stdio.h"voidmain(){inta[5]={1,3,5,7,9};int*name[5]={&a[0],&a[1],&a[2],&a[3],... #include"stdio.h"

void main()
{
int a[5] = { 1,3,5,7,9 };
int *name[5] = { &a[0],&a[1],&a[2],&a[3],&a[4] };
int i;
for (i = 0; i < 5; i++)
{
printf("%d", *name[i]);
}
}

以上这个程序,输出的是数组里的5个数字,没有问题。那问题来了:*取的并不是一个地址,而&是取址而不是取值,那为什么 int *name[5] = { &a[0],&a[1],&a[2],&a[3],&a[4] }这句语句可以成立呢。是我对指针的概念有什么误解么?希望大神解答一下
展开
 我来答
GTA小鸡
高粉答主

2018-05-18 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
int *name[5]表示定义一个指针数组name,数组中的每个元素都是一个int*指针,并将这个数组赋初值为&a[0]~&a[4]。&a[0]表示a[0]的地址,可以作为常量指针使用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式