众所周知
在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 基于单片机的靶位控制系统
- ¥15 AT89C51控制8位八段数码管显示时钟。
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 下图接收小电路,谁知道原理
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错