本文目錄一覽:
C語言的學習問題 44 (sj5-x22)
強制類型轉換運算符將一個表達式轉換成所需類型:例如
(double) (將a轉換成double類型)
(int)(x+y) (將x+y的值轉換成整型)
(float)(5%3)(將5%3的值轉換成float)
即其一般形式為:
(類型名)(表達式)
表達式要用括號括起來,如果不是表達式,則不需要括號括起來,所以選項C錯了
C語言表達式
執行到那一句才有相應的效果,問號表達式可以改寫成if-else:
x = a b ? i++ : i++;
等同於:
if(a b)
x = i++;
else
x = i++;
所以最後x等於3,i自增了一次等於4。
為什麼一定要去研究那些沒用的旮旯呢,我從來不記什麼結合方向和運算符優先級別,對於問號表達式,我只知道:
x = a b ? i++ : i–;
如果a b,那麼x = i++,否則x = i–,而整個表達式取了哪一個i的值,那個i的相關副作用運算(如果有的話,比如自增自減)才發生作用。如果你實在想不透就把它改寫成上面那樣的if-else語句,一目了然,沒必要學孔已己樣咬文嚼字在那些拐角旮旯里浪費時間。
BTW:你們的考試考運算符結合方向?天……
C語言 44題為什麼等於3
因為p1與p2都是指向同一數組的指針,p1-p2就是兩者之間相隔的元素個數,a[2]和a[5]相差3個元素,所以結果為3
原創文章,作者:MRER,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/134557.html