请问代码中的*(ptr++)+=123;这个指令执行后,为什么指针ptr只移动了一次,而不是li...
#include <stdio.h>int main()
{
int arr[] = {6,7,8,9,10};
int *ptr = arr;
printf("%#X\n", ptr);
*(ptr++)+=123;
printf("%#X\n", ptr);
printf(" %d %d ", *ptr, *(++ptr));
return 0;
}
运行结果:
0XBFA23988
0XBFA2398C
*ptr = 8, *(++ptr) = 8
你的问题没有打全 请问代码中的*(ptr++)+=123;这个指令执行后,为什么指针ptr只移动了一次,而不是两次; #include<stdio.h>
2
3 int main(void){
4 int arr[]={6,7,8,9,10};
5 int *ptr=arr;
6 printf("%p\n",ptr);
7 *(ptr++)+=123;
8 printf("%p\n",ptr);
9 printf("%d\n",*ptr);
10 printf("%d %d \n",*ptr,*(++ptr));
11
12 return 0;
13 }
我加了一句,运行结果是
0x7ffe52e88790
0x7ffe52e88794
7
8 8
*(ptr++)+=123;括号里的就是地址的移动,括号歪就不是了
页:
[1]