嗨,我很困惑得到下面的解释,有人可以给我解释一下吗?提前致谢。
#include<stdio.h>
int main(){
char *arr,c;
arr = &c;
arr++;
*arr = 'a';
arr++;
*arr = 'b';
arr++;
*arr = 'c';
arr--;
arr--;
printf("\narr 1 = %c",arr);
printf("\narr 2 = %c",arr[1]);
printf("\narr 3 = %c",arr[2]);
getch();
return 1;
}
输出为:
arr 1 = a
arr 2 = b
arr 3 = c
但如果换行:
printf("\narr 1 = %c",arr);
和
printf("\narr 1 = %c",arr[0]);
现在输出是:
arr 1 =
arr 2 = b
arr 3 = c
为什么'a'没有被打印出来。?
*对于所有质疑该程序为糟糕编码的人。我知道使用这样的指针不是一个好的编码习惯,但我的问题是为什么 arr[0] 没有打印任何作为 arr[1] 和 arr[ 2]正在打印分配什么?