int main()
{
int arr[] = {6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d ,%d/n",*ptr,*(++ptr));
return 0;
}
//结果为 8 8
解释如下:
1.
int arr[]={6,7,8,9,10};
int *ptr=arr;//现在ptr指向6
*(ptr++)+=123;//现在ptr指向7,第一个元素变为129
printf("%d,%d",*ptr,*(++ptr)); //考虑从右往左计算,先是*(++ptr),现在ptr指向8,然后*ptr也是8,输出8,8
2.
printf的参数,函数printf从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所有从右边开始处理的。
C指针操作解析
本文通过一个简单的C语言示例程序详细解析了指针的使用方法及递增运算符对指针的影响。程序中演示了如何修改数组元素,并通过指针获取数组中的不同元素。
551

被折叠的 条评论
为什么被折叠?



