下面程序运行结果是什么呢?
#include
int
main()
{
int arr[] = {6, 7, 8, 9, 10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d\n", *ptr);
printf("%d\t%d\t%d\n", *(ptr - 2), *ptr, *ptr++);
getchar();
return (0);
}
答案:
7
129 8 7
分析:
对于*(ptr++) += 123;先做加法6+123,然后指针++,指针指向7;
对于printf("%d\t%d\t%d\n", *(ptr - 2), *ptr, *ptr++); 从后往前执行,先打印*ptr,然后指针++,指向8,然后输出8,紧接着再输出*(ptr - 2),即129。
阅读(425) | 评论(0) | 转发(0) |