众所周知
在c语言中,三目运算符的结果返回的是一个具体的数值,是一个常量;
而C++中,三目运算符返回的是一个变量,可以作为左值使用;
那么C++中这个三目运算符是如何做到返回一个变量的呢?
让表达式返回一个内存空间的首地址吗?
C++三目运算符原理
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 谢玄. 2022-11-14 11:55关注
这个是编译器的编译方式的不同,c 返回的是值 ,c++ 返回的是变量。
比如printf("%d",a=3+2);
在 C 里面等同于a = 3 + 2; pritf("%d",5);
在C ++ 里面等同于
a = 3 + 2; pritf("%d",a);
三木运算符也是一样的,他是需要把复杂的语句拆解开来,变成简单的语句,最后变成机器码的。
( a == 1 ? b = 4 : c = 5 ) = 6; // c ( 1 == 1 ? b = 4 : c = 5 ) = 6; (c=5)=6; c = 6; // c ++ ( 1 == 1 ? b = 4 : c = 5 ) = 6; (c=5)=6; 5 = 6;
所以c会报错,c++ 不会
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 (SQL语句|查询结果翻了4倍)
- ¥15 Odoo17操作下面代码的模块时出现没有'读取'来访问
- ¥50 .net core 并发调用接口问题
- ¥15 网上各种方法试过了,pip还是无法使用
- ¥15 用verilog实现tanh函数和softplus函数
- ¥15 Hadoop集群部署启动Hadoop时碰到问题
- ¥15 求京东批量付款能替代天诚
- ¥15 slaris 系统断电后,重新开机后一直自动重启
- ¥15 QTableWidget重绘程序崩溃
- ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊