【发布时间】:2021-02-22 01:27:28
【问题描述】:
在下面的程序中,'c' 指针没有被修改。尽管如此,它仍在打印数组的第二个元素而不是第一个元素,即“a”。谁能解释这种行为?前两个字符打印正确,但第三个字符异常。
#include <stdio.h>
int main()
{
char arr[] = {'a','m','r'};
char *a = arr;
char *b = arr;
char *c = arr;
*++a;
++*b;
printf("%c %c %c",*a,*b,*c);
return 0;
}
输出:
m b b
【问题讨论】:
-
++*b;这里是增加数组的内容。 -
好吧,因为
c与b指向同一个地方...
标签: c pointers post-increment pre-increment