有如下代码:
#include<iostream>
using namespace std;
main()
{
int a,b,c;
int x=10;
int y=9;
a=(--x==y++)?--x:y++;
cout<<"a="<<a<<"\n"<<"x="<<x<<"\n"<<"y="<<y<<"\n";
system("pause");
}
最后的输出结果是a=8;x=8;y=10我想知道是怎么算出来的,求详解过程!!
谢谢
谢谢
c++中的三目运算符执行的结果是?
因为a=1,b=2,所以a
C++三目运算符返回值类型问题
三目运算符是这样的:A?B:C,若A表达式为真,则三目运算符结果为B表达式的结果, 若A为假,则为C的结果,8>5为真,则返回变量a
c++中的运算符“ ?: ”是什么关系?
三目运算符是?:结构的运算 所谓三目就是需要三个变量对能进行运算的操作 举个例子:2>1?A:B 答案就是A 先算“?”前面的,若前面成立就执行:前面的(A),反之就执行后面的(B)再举个简单的例子:a=2>1?3:4 可分成几个部分,用括号分开:(a=)(2>1)?(3):(4)最左边是赋值操作 第...
C++ 三目运算符问题
三目运算就是下面这算式了 a>="a"&&a<="z")?(a+32):a 它的意思是:a代表的字符在小写字母'a'和'z'之间吗?如果是,运算结果是a+32;如果不是,结果是a 这段程序应该是字母大小写转换,但有点问题。如果是想把小写转成大写,后面应该是(a-32);如果是想把大写转成小写,引号里应该是...
C++三目运算符优先级问题
按照你的代码(我加了一句输出),汇编之后,发现g++忽略了1?1:a=1;但是将1?1:a=1;改成1?a:1=1时编译报错,这应该是g++编译器在检查代码时的方向有关 在gcc中无论此三目运算是不能被赋值的,也就是说,不能被当做左值.而在g++中是可以做左值的 ...
C++语言:三目运算符 表达式1 ?表达式2 : 表达式3 的执行方向是右到左...
当然是从左到右了。先判断表达式1,若满足,就执行2,否则执行3。
c++三目运算符很奇怪! unsigned int k=2; int l=-6; cout<<((l+k)>...
unsigned int k=2,是一个没有符号的整形数字,所以当它可i相加时,就成了X值,因为这个X是一个正数,所以=X X大于0 (l+k)>0?1:0,很明显,我们可以看出是输出1了 如果不明白给一个代码你 include <iostream.h> int main(){ unsigned int k=2;int l=-6;cout<<(k+l)<<endl;retu...
关于C++三目运算的问题
先判断--x == y++,--x是先执行-运算,实际上你可以理解成两句语句就是x-1 == y ; y = y+1;所以就是 10-1 == 9,成立,等到判断过了之后,y++生效,y = 10;然后给a赋值,--x,就是 a = x -1 ;你老师说的y++没有执行大概说的事 --x:y++里的y++。
条件运算符(? :)的运算规则是?
C++中,“?”与“:”共同组成三目条件运算符(?:)三目条件运算符(?:)使用例子如下:x ? y:z;上面的三目条件运算的规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值。下面的例子为从两个数中找出较大的程序:int a=3,...
求C++高手~~~解答优先级问题~~求你们啊~~~谢谢了,详细地解答下怎么计...
你应该是这句不明白吧,三目运算符是从右向左的结合。相当于这样:k = (i-j) ? (i+j) : ((i-3) ? j : i);先计算表达式:((i-3) ? j : i),判断(i-3) = 7,非零为真。那么 ((i-3) ? j : i) = j = 20;再计算 k = (i-j) ? (i+j) : 20; 判断(i-j)...