快速理解 C語言表示式的計算

2021-10-10 02:53:07 字數 910 閱讀 9326

藍色表示正確答案

題目:下面所有變數的定義為:int i=3,j=5,b; float x=2.5; double y=5.0; char a='a';

第一題

(x+y)+i++   

根據運算的規則,應該先算(x+y)=7.5然後再算(x+y)+i=10.5,最後算++,但是並不是10.5+1,而是i+1;

所以(x+y)+i++ =10.5

第二題

a=a+i, a+j

先計算a=97+3(a的ascii值為97)=100  然後  a=a+5=100+5=105,

所以a=a+i, a+j=105

a=(a+i,a+j)

同樣也是先計算a=a+i=97+3=100,然後a=a+j=97+5=102;因為()的原因所以a的值並沒有被修改。

所以a=(a+i,a+j)=102

第三題

i-=j*=x+y

值得注意的是此處有乙個*號,是不是以為他的優先順序會更高呢?不是這樣的。正確是解法是:

x+y=7.5;       j=j*7.5=37;   i=i-37=3-37=-34;(這裡的i=37是因為i為整形的,所以最後會捨去小數部分)。

所以i-=j*=x+y=-34

c語言 表示式的計算

include stack.h 提供棧及其基本操作函式 include mymath.h 提供階乘函式 include include define buffsize 128 define charsize 10 define pi 3.141593 define e 2.718282 define...

C語言表示式

逗號表示式逗號表示式 就是用逗號隔開的多個表示式,從左向右依次執行 exp1,exp2,wxp3,wxpn注意 整個表示式的結果是最後乙個表示式的結果。void test 下表引用 函式呼叫和結構成員 1.下表引用符操作符 運算元 乙個陣列名 以後索引值 int arr 10 arr 9 10 有兩...

C語言 表示式計算次序

c語言裡,優先順序和結合性規則告訴我們哪些符號組成乙個意群,同時這些意群內部如何進行計算的次序始終未定義。在表示式 x f g h g 和 h 組成乙個意群進行乘法運算,單兩者的呼叫可能以任何順序次序出現。同理f 呼叫,可能在乘法之前,也可能在乘法之後,也可能在g 和 h 呼叫之間。唯一可以確定的是...