printf("%d\n",*(ptr++))讲解
来源:互联网 发布:阿里云服务器备案时间 编辑:程序博客网 时间:2024/06/06 03:41
C代码如下:
- 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从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所有从右边开始处理的。
- printf("%d\n",*(ptr++))讲解
- printf("%d,%d\n", *ptr, *(++ptr))
- printf("%d,%d\n", *ptr, *(ptr++))
- int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf("%d,%d",*ptr,*(++ptr));
- printf("%d\n",*p+++*++p);
- printf("%d,%d",*ptr,*(++ptr))的输出语句是从右到左的,所以结果都为,8,8
- printf("%d,%d\n",*p1,*(++p1));
- printf("%d %d ",n,~n)^10&&main(n+2);
- printf("%d%d%d%d\n", a,b,c);
- printf("%d,%d,%d/n",a,++a,a++)
- printf("%d %s\n",a,a);
- dword ptr指令讲解
- 汉诺塔算法//printf("%d:%c->%c\n",n,one,three);
- n=fork()); printf("pid:%d,fork:%d\n",getpid(),n);
- 在c语言中执行这两条语句printf("%d/n", 5.01);printf("%f/n", 5);
- 关于C语言的printf("%d,%d,%d,%d\n",a,++a,a--,a--);
- printf("%d,%d,%d,%d\n",i++,--i,++i,i++);编译器是如何处理的。
- printf("%d\v",n);奇怪的输出结果
- 【月入41万】Mono For Android中使用百度地图SDK
- 图像灰度化原理和实现
- Redis anet
- JavaFX 的 Button 控件
- 翻转单词顺序
- printf("%d\n",*(ptr++))讲解
- oracle
- 图像二值化
- 【eclipse Plug-in】几款Eclipse不错的插件
- cocos2d
- 如何进行多线程调试
- 处理并发错误
- [C++STDlib基础]关于数学函数的介绍——C++标准库头文件<cmath>
- [C++STDlib基础]关于C标准输入输出的操作——C++标准库头文件<cstdio>