int a[]={1,2,3,4,5,6},int *p=a; 对p赋值的是数组a的第一个元素值还是全部,我要怎样输出?

2024-12-19 20:20:59
推荐回答(5个)
回答1:

对p赋值的是数组a的 始地址,也就是 &a[0], 不是元素值。
输出有2种方法:
#include
#include
main()
{
int a[]={1,2,3,4,5,6};
int *p=a;
int i,n;
n = sizeof(a)/sizeof(int);
for (i=0;i< n ;i++) printf("%d ", p[i]); //输出
printf("\nOr:\n");
for (i=0;i< n;i++) printf("%d ", *(p+i)); // 输出
return 0;

}

回答2:

P存放的是这个数组的首地址,不是值,要想全部输出可以for(int i;i<6;i++)
printf("%d\n",p[i]);

回答3:

数组a的首地址给了p,输出 用*(p+i),i为0到5

回答4:

赋值的是一个地址,数组的地址,也就是数组第一个值的地址*(p+i)就可以了到第i个值了

回答5:

数组a的首地址给了p,输出 用*(p+i),i为0到5,赞同