问题描述
我正在练习指针算术,但是printf语句的响应令人困惑。我的理解是,应该先打印101,然后再递增。但是问题出在这里...
getCalories()
它产生以下输出
#include <stdio.h>
int main()
{
int a[] = {101,276,345};
int *ptr = a;
printf ("%d\n%d\n",*ptr,*(++ptr) );
return 0;
}
276
276
正在关注
#include <stdio.h>
int main()
{
int a[] = {101,345};
int *ptr = a;
printf ("%d\n",*ptr);
return 0;
}
解决方法
++ ptr更改了原始指针,请尝试使用ptr +1代替++ ptr
#include <stdio.h>
int main()
{
int a[] = {101,276,345};
int *ptr = a;
printf ("%d\n%d\n",*ptr,*(ptr + 1) );
return 0;
}