C++中>?=运算符什么意思
答案:5 悬赏:10 手机版
解决时间 2021-03-29 17:03
- 提问者网友:自食苦果
- 2021-03-29 01:16
C++中>?=运算符什么意思
最佳答案
- 五星知识达人网友:行雁书
- 2021-03-29 01:38
这个编译器可能有些默认的数值
会不会是
cout << (a>'' ? =b +=c : '') << '\n'
就是a是不是大于‘’空格字符的,如果大于,则等于b,此时的b已经等于8,否则a等于空格,你可尝试写成cout << (a =b +=c ) << '\n',这是应该就能看到编译器的默认值到底是什么追问
追答那也就没什么奇怪的了
补全了应该是这样:cout << (a<'' ? =b +=c : a) << '\n'
会不会是
cout << (a>'' ? =b +=c : '') << '\n'
就是a是不是大于‘’空格字符的,如果大于,则等于b,此时的b已经等于8,否则a等于空格,你可尝试写成cout << (a =b +=c ) << '\n',这是应该就能看到编译器的默认值到底是什么追问
追答那也就没什么奇怪的了
补全了应该是这样:cout << (a<'' ? =b +=c : a) << '\n'
全部回答
- 1楼网友:低血压的长颈鹿
- 2021-03-29 05:36
涨姿势了,但是可以肯定的在标准语法中,没有>?=这种运算符。同时发现必须连写,增加空格就会出错(比如写成“> ?=”、“>? =”之类),而且确实DEV C++会编过,感觉和编译器的实现有关系,但可以肯定的是这不符合C++标准规范,写这种东西只能用在参加什么国际C语言混乱代码大赛上了。写别人看不懂,编译器又不通用的东西,没什么实际价值。追问呃 我在某本最近的算法书上看到的
- 2楼网友:低音帝王
- 2021-03-29 04:17
a>?=b 等价于:a=a>b?a:b;
对于上式:a>?b+=c依据优先级:先计算b+=c,也就是b=b+c=8;
之后因为a>?=b等价于a=a>b?a:b,则先计算a>b=0,表达式值为a=8;
也就是结果所呈现的:a=8,b=8,c=3;
另外说明一点:上式不可以如此改写:a=a>b?a:b+=c,因为题目表达式中并没有出现?:表达,若如此改写就改变了计算的优先级,改写后的式子应该先计算三目运算符,再计算赋值符,最后计算+=符。这样b的值就不会被改变。结果就不对。因此:对于a>?=b运算符我们可以理解为:a=a>b?a:b,但是不是完全的等价。
请点赞,谢谢!
对于上式:a>?b+=c依据优先级:先计算b+=c,也就是b=b+c=8;
之后因为a>?=b等价于a=a>b?a:b,则先计算a>b=0,表达式值为a=8;
也就是结果所呈现的:a=8,b=8,c=3;
另外说明一点:上式不可以如此改写:a=a>b?a:b+=c,因为题目表达式中并没有出现?:表达,若如此改写就改变了计算的优先级,改写后的式子应该先计算三目运算符,再计算赋值符,最后计算+=符。这样b的值就不会被改变。结果就不对。因此:对于a>?=b运算符我们可以理解为:a=a>b?a:b,但是不是完全的等价。
请点赞,谢谢!
- 3楼网友:不想翻身的咸鱼
- 2021-03-29 02:34
我按照你的程序敲了,编译没通过。我是觉得你这个程序有问题,根本就没有那种运算符。
追问VC不行我也试过了,用DEV-C++就可以通过了追答那就是编译器的问题了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯