如果我通过指针给它一个值,为什么我不能使用数组引用更改数组中的值?

时间:2016-12-25 10:38:26

标签: c arrays pointers

我的程序如下:

char a[10];
char (*pa)[10];
pa = a;
a[0] = 'g';
*pa[1] = 'h';
printf("%c", *pa[0]);
printf("%c\n", *pa[1]);
a[0] = 'r';
a[1] = 'd';
printf("%c", *pa[0]);
printf("%c", *pa[1]);

当我运行它时,我得到输出:

gh
rh

怎么回事

a[1] = 'd'

不会将值更改为“d”?

1 个答案:

答案 0 :(得分:1)

您只将a[0]的值分配给*pa[0](有基地址值),但不分配第二个元素的值。