首页
关于
README
Search
1
如何配置终端现代化Neovim
629 阅读
2
mdk3工具使用
463 阅读
3
关于C语言
463 阅读
4
Windows11pro 下载体验
445 阅读
5
关于Docker容器--0×01
375 阅读
默认分类
网络技术
渗透测试
编程语言
C语言
Python
Linux
搞机技巧
Termux
golang
数学
Search
标签搜索
printf
mach
sin cos tan
Toanle
累计撰写
40
篇文章
累计收到
1
条评论
首页
栏目
默认分类
网络技术
渗透测试
编程语言
C语言
Python
Linux
搞机技巧
Termux
golang
数学
页面
关于
README
搜索到
1
篇与
printf
的结果
2021-03-09
关于C语言使用printf的问题-编译系统求值时读取的顺序
今天在学习C语言的时候写到了如下的两端代码,简单来看,我一开始以为应该是一样的输出结果的,但是并不是这样。#include <stdio.h> int main() { int i=8; printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--); return 0; }代码段1与其执行结果:代码段2:#include <stdio.h> int main() { int i=8; printf("%d\n",++i); printf("%d\n",--i); printf("%d\n",i++); printf("%d\n",i--); printf("%d\n",-i++); printf("%d\n",-i--); return 0; }代码段2与其执行结果:一开始我是非常蒙的,但是后来网上找了一些资料以后发现,不同的编译器的求值的编译顺序是不同的。我使用的编译器是gcc,它的计算的顺序(注意:不是输出的顺序。)是从右往左的,网上看到的是说C语言的压栈顺序是从右往左。像代码段1的运算过程就是:i=8 → 输出-i → i=i-1 → 输出-i → i=i+1 → 输出i → i=i-1 → 输出i → i=i+1 → i=i-1 → i=i+1 → 输出i(即在一段运算中++i与--i的值与i的最终值相同)。而代码段2就是直接一个一个的输出,就是很正常的值了。OwO,关于即在一段运算中++i与--i的值与i的最终值相同
2021年03月09日
98 阅读
0 评论
0 点赞