1樓:匿名使用者
其實我也不是太確定,所以在vs2008裡執行一下,結果在c++裡面執行會出錯。實際編成中根本不可能出現這樣複雜的語句。所謂一行**做一件事情,這才是程式設計師所提倡的。
這樣寫出來的**易讀性才比較高。
另外簡單解釋一下,c++中 ==運算子優先順序是高於=和*=的。
一般的編譯起都是自右向左結合,但是少數編譯器是從左向右運算的。
這是我所知道的,剩下的就交給編譯器來做吧,如果編譯器都沒法通過,那這語句可以不用解釋了。
2樓:mis_丫
自右向左結合
先是z=5,把5賦給z,返回1(成功)
然後y==1 判斷y 等不等於1
然後x *= 就是x =x * 上面的結果
3樓:喜歡嫣然
這是一個非法語句,因為按運算子的優先順序別分解如下:
(1).y==z,若成立,則值為1,否則為0;
(2).*=與=是同級別的故按這級別的結合方向應從右到左,先把5賦給(1)中的1或0,在c++中將常數賦給常數是不合法的,故整句非法.
(3)若(2)中合法運算*=,即x=x*(2)中的結果.
4樓:
會出錯,x*=沒問題
y==z=5 由於==的優先順序高於賦值號
所以變成給表示式y==z賦值為5,y==z 是一個常量1,或0 不是左值不能賦值。
c++中!x&&y<=5什麼意思
5樓:特維佐
!是非的意思(比如 !0 不是0的意思)&&與(表示要同時滿足)
!x&&y<=5
的意思是既要不是x又要讓y小於或等於5。
6樓:沉默丶羊羔
!x是一個條件(意思是非x或者x的否定),y<=5也是一個條件,!x&&y<=5的意思就是前面兩個條件同時成立的意思。
7樓:匿名使用者
!x代表如果x是0,則該表示式為真,x為非0,則表示式為假。
y<=5很簡單了。
&&的含義是,上面兩行都為真,則結果為真,否則為假
執行下列語句後,z的值是()int x=5,y=24,z=5;z=y/x*z;
8樓:匿名使用者
根據運算子優先順序,結果是:24
9樓:匿名使用者
w++是w先不自加,在語句
完後自加intw,x,y,z;w=5,x=4;y=w++*w++*w++;printf("%d\n",y);z=--x*--x*--x+y--;printf("%d",z);執行結果y=125y=5*5*5=125
已知int x=5,y=5,z=5;執行語句x%=y+z;這句話翻譯過來是怎樣的?
10樓:匿名使用者
是x=x%(y+z)
11樓:匿名使用者
x%=y+z翻譯成這copy樣x=x%(y+z)是對的,這個稱謂賦值表示式其中x作為左值
x=x%y+z這個只能算表示式,即先計算x=x%y的值,再+z就成了表示式
你的x y z都等5不好區分,你換一個數試試如:
x=3,y=4,z=6
x=x%y+z就等於9
x=x%(y+z)就等於3,
12樓:匿名使用者
x %= y+z
%= 後面表示式的值
x = x % (y+z)
c++中z = x>y ? x : y;是什麼意思
13樓:匿名使用者
? :是三元運算子,整個表示式根據條件返回不同的值,如果x>y為真則返回x,如果為假則返回y,之後=賦值給z。相當於:
if(x>y)
z=x;
else
z=y;
14樓:森林式大學
固定的表達,就是把x、y中較大的附給z,謝謝、
至於為什麼是這樣表達,有待你的品味,好好學c ,努力吧!
15樓:
如果x>y為真, x>y ? x : y;的表示式值為x,如果為假, x>y ? x : y;表示式值為y
16樓:匿名使用者
就是比較x和y的大小z是其中大的那個。。
C語言中intx5,y5,z5執行語句xy
因為 運算 符的優先順序copy低於 所以 bai,先算y z 5 5 10 x y z x 10 x x 10 5 10 5 表示取模後,結果du還賦值給左zhi變數 表示模運dao算,即 整除取餘數。已知int x 5,y 5,z 5 執行語句x y z 後,x的值是 x y z x x y z...
在c語言中,if語句後面的else語句中能不能巢狀for迴圈
在c語言中,if.else分支語句與for迴圈語句和其他迴圈及分支都是可以巢狀使用的,也就是說在if語句後面和else語句後面都是可以使用for迴圈語句的,例如 給定一個整數n,判斷這個整數n是不是小於2,如果小於2則提示給定數值不在有效範圍內,否則計算從1到n的累加和。int sum 0 if n...
C 在switch語句中default的位置有沒有什麼講究
其實沒什麼講究 但習慣上都寫最後 這樣看起來也比軟直觀 c 中switch語句裡的default是怎麼用的?有什麼作用?一般這麼寫 swith 變數 default就是當變數的取值不在上面任何一個case的情況下,語句要做處理,其實也是一種case,只不過就是指 除了指定的幾個case以外的其他情況...