#include <stdio.h>
int main()
{
char a[] = "hello";
char *ptr = a;
printf ("%c\n",*ptr++);//it prints character 'h'.
printf ("%c\n",*ptr);//it prints character 'e'.
return 0;
}
据我了解:在上面的代码中,在*ptr++
表达式中,两者*
和++
具有相同的优先级,并且操作将从右到左进行,这意味着指针将首先递增,然后将发生延迟。所以它应该'e'
在第一printf
条语句中打印字符。但事实并非如此。
所以我的问题是:如果它没有在第一个语句*ptr++
中取消引用该位置,它将在哪里存储增量值(in, )?printf