求助,c语言问题

这个语句的结果和要表达的意思
#include<stdio.h>
int main()
{
int a[6]={1,3,5,7,9,11},i, * pa;
for(i=0;i<6;i++)
printf("a[%d]=%d\t",i,a[i]);
printf("\n");
for(i=0;i<6;i++)
printf("a[%d]=%d\t",i, * (a+i));
printf("\n");
for(i=0,pa=a;pa<a+6;pa++)
printf("a[%d]=%d\t",i++,* pa);
printf("\n");
}

结果:

整个程序的功能其实就是用了三种方式输出数组中的6个数

数组名a可以看成数组首元素的地址,数组开辟了一段连续的存储空间,*(a+i)逐个解引用数组中的元素

pa=a,让指针pa指向数组首元素,通过指针的移动输出数组中的元素

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-30

#include<stdio.h>
int main()
{
int a[6] = { 1,3,5,7,9,11 }, i, * pa;
for (i = 0; i < 6; i++)
printf("a[%d]=%d\t", i, a[i]);//用数组加下标法输出数组元素
printf("\n");//换行符号
for (i = 0; i < 6; i++)
printf("a[%d]=%d\t", i, *(a + i));//用数组名指针法输出数组元素
printf("\n");
for (i = 0, pa = a; pa < a + 6; pa++)
printf("a[%d]=%d\t", i++, *pa);//用指针变量(指针移动)对元素进行输出
printf("\n");
}

相似回答