C语言操作符++和--怎么使用
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,本篇内容介绍了"C语言操作符++和--怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、++
千家信息网最后更新 2025年11月11日C语言操作符++和--怎么使用
本篇内容介绍了"C语言操作符++和--怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一、++与--操作符的本质
++ 和 -- 操作符对应两条汇编指令
前置
变量自增(减)1
取变量值
后置
取变量值
变量自增(减)1
下面看一段神奇的代码:
#includeint main(){ int i = 0; int r = 0; r = (i++) + (i++) + (i++); printf("i = %d\n", i); printf("r = %d\n", r); r = (++i) + (++i) + (++i); printf("i = %d\n", i); printf("r = %d\n", r); return 0;}
在 VS2012中,它的运行结果如下:
在 gcc 编译器中,它的运行结果如下:
这是由于不同编译器对 ++ 和 -- 的相对哦执行次序不一样。
二、++与-- 操作符使用分析
C 语言中只规定了 ++ 和 -- 对应指令的相对执行次序
++ 和 -- 对应的汇编指令不一定连续运行
在混合运算中,++ 和 -- 的汇编指令可能被打断执行
++ 和 -- 参与混合运算结果是不确定的。
笔试面试中的"奇葩"题
贪心法:++,-- 表达式的阅读技巧
编译器处理的每个符号应该尽可能多的包含字符
编译器以从左向右的顺序一个一个尽可能多的读入字符
当读入的字符不可能和已读入的字符组成合法符号为止
下面看一段代码:
#includeint main(){ int i = 0; int j = ++i+++i+++i; int a = 1; int b = 4; int c = a+++b; int* p = &a; b = b/ *p; printf("i = %d\n", i); printf("j = %d\n", j); printf("a = %d\n", a); printf("b = %d\n", b); printf("c = %d\n", c); return 0;}
运行后编译器会报错:
这行代码为什么报错呢?int j = ++i+++i+++i; 原因就是编译器发现 ++i 后由于贪心,会继续往下找,发现 ++i+ 后编译器觉得符合语法规则,继续往下找,当出现 ++i++时编译器感觉不对,开始计算,就变成 1++,这是不合法的,所以编译器就会报错。
空格可以作为C语言中一个完整符号的休止符编译器读入空格后立即对之前读入的符号进行处理。
所以下面这么写就可以:
#includeint main(){ int i = 0; int j = ++i + ++i + ++i; int a = 1; int b = 4; int c = a++ + b; int* p = &a; b = b/ *p; printf("i = %d\n", i); printf("j = %d\n", j); printf("a = %d\n", a); printf("b = %d\n", b); printf("c = %d\n", c); return 0;}
编译结果如下:
"C语言操作符++和--怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
编译
编译器
操作符
语言
字符
指令
符号
结果
运行
代码
内容
变量
尽可能
更多
次序
知识
空格
这是
量值
会报
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
带服务器的路由器
fm数据库语言
app软件开发预见风险
奥运会网络安全保障总结
中国临床案例成果数据库投稿
上海网络安全展览会
汽车票软件开发
域名备案服务器主体
工业软件开发组织管理
清华大学有计算机网络技术
外购软件开发成本账务处理
江苏猫人互联网科技有限公司
typecho数据库结构
服务器过期数据能恢复吗
广州工控软件开发价格
通化学习网络技术
无白名单服务器
ps4服务器维护时间2020
网络安全防护事宜
振芯科技与星际互联网
江苏宿迁服务器租用云空间
苏州软件开发价格
失落的方舟两个服务器
给我来个软件开发人员必须公开课
上海优嘻互联网信息科技有限公司
网信办网络安全评价报告
南阳网络技术有限公司地址
数据库登录界面不见了
操作系统中什么是数据库
ai算法工作服务器