請問printf裡的表示式怎麼運算出來的?過程是什麼

2022-11-03 21:37:13 字數 3012 閱讀 8331

1樓:匿名使用者

這涉及到的printf:

1.printf,其中表示式的引數是正確的組合,這意味著表達了printf引數的操作順序是從右到左的操作,首先計算最右邊的表示式左側的最後乙個操作的

2.printf的的輸出序列由左到右,最左邊的表示式的值的第一輸出端,

/>因此最右邊的表示式的值的最終輸出,與上述兩個特點:

的printf(「%d%d \ n」,* p(q)+)* p(q)+ +這兩個表示式,首先(q)+ +,然後計算***號碼:

(* q)+ +表示式的值為2,計算,* q然後+ +**變得

* p:p和q指向相同的位址,後*第成為上述的計算,3

最終輸出,*第(3)的第一輸出值,然後輸出(倡q)+ +的值(即,2)

輸出結果是:32

2樓:匿名使用者

==運算的優先順序高於||,因此先運算a==b,c==da==b||c==d,只要a=b或c=d中至少有乙個為真,表示式的值就是1;如果a=b、c=d都為假,則表示式的值為0

由a、b、c、d的賦值可以看出,a=b、c=d都為假,值都為0,因此a==b||c==d的值為0輸出0

c語言的「<=」在表示式中如何運算?如:int x=4,y;y=x--<=0;printf(%d,y)的結果是什麼?怎麼算來的?

3樓:長士恩竇羅

0從右往左運算,x自減一,小於零的布林值為(0)假

賦值給y

4樓:郗奕聲寶鵑

上面回答了,就不用我了,printf("%d",y)

我c新手,598201526,願意的共同討論

5樓:閩忠饒俏

涉及到操作符等級問題,在這裡,單目操作符優先順序最高,就是(x--),其次是<=0,最後是=。x--結果是4,4大於0,所以y=false,被型別轉換為0.

題:執行下面程式中的輸出語句後,a的值是() main () {int a ; printf("%d\n",(a=3*5,a*4,a+5));}

6樓:匿名使用者

輸出語句後,a的值為15,列印到螢幕上的為逗號表示式的結果20。

7樓:匿名使用者

這個主要是逗號表示式的計算

逗號表示式的要領:

(1) 逗號表示式的運算過程為:從左往右逐個計算表示式。

(2) 逗號表示式作為乙個整體,它的值為最後乙個表示式(也即表示式n)的值。

(3) 逗號運算子的優先級別在所有運算子中最低。

所以,你的那個表示式(a=3*5,a*4,a+5),先計算a=3*5;這時a=15了,然後計算a*4=60,再計算a+5=20;逗號表示式的值為最後乙個表示式的值,所以(a=3*5,a*4,a+5)=20

你的程式最後列印20

8樓:大白講大白

執行程式後 a=15.

printf("%d\n",(a=3*5,a*4,a+5);中只有a=3*5對a進行了賦值操作,後面有關a的計算,對變數a本身沒有影響。

9樓:手機使用者

%是取餘,/是除。根據逗號原理,輸出的是最後乙個表示式的值。所以選c.

c語言中設a=1,b=2,c=3,d=4;執行printf(%d%d%d%d\n",a==b==c,c=a==b,c==(a=b),b=c);的結果是什麼 100

10樓:匿名使用者

c語言提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來專。如:

3+5,6+8稱為逗號表示式,又屬稱為「順序求值運算子」。逗號表示式的一般形式為表示式1,表示式2逗號表示式的求解過程是:先求解表示式1,再求解表示式2。

整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式「3+5,6+8」的值為14。又如,逗號表示式a=3*5,a*4對此表示式的求解,讀者可能會有兩種不同的理解:

一種認為「3*5,a*4」是乙個逗號表示式,先求出此逗號表示式的值,如果a的原值為3,則逗號表示式的值為12,將12賦給a,因此最後a的值為12。另一種認為:「a=3*5」是乙個賦值表示式」,「a*4」是另乙個表示式,二者用逗號相連,構成乙個逗號表示式。

這兩者哪乙個對呢?賦值運算子的優先級別高於逗號運算子,因此應先求解a=3*5(也就是把「a=3*5」作為乙個表示式)。經計算和賦值後得到a的值為15,然後求解a*4,得60。

整個逗號表示式的值為60。

int i=8; printf("%d%d%d%d",++i,--i,i++,i--); 答案為什麼是8788?求解,謝謝

11樓:

這同編譯器和編譯選項有關。

運算次序:

i--, 字尾減減,值不變 i=8

i++字尾++,值不變 i=8

--i 字首減減,值變 i=7

++i 字首加加,值變 i=8

打出 8788

12樓:匿名使用者

這裡是乙個逗號運算子的問題。由逗號運算子隔開的幾個表示式,其整體表示式的值為最後乙個表示式的值。所以運算時編譯器直接優先算最後乙個表示式的值。

所以printf裡面那幾個運算順序你可以看成由右往左運算。首先運算i--,然後運算i++這樣,而後置++和--會等到該行表示式運算完畢後,再另行++,--,你這個列印完之後,i值依然為 8

13樓:匿名使用者

2樓的沒跟他說清楚……

這裡其實有乙個逗號運算子的問題。由逗號運算子隔開的幾個表示式,其整體表示式的值為最後乙個表示式的值。所以運算時編譯器直接優先算最後乙個表示式的值。

所以printf裡面那幾個運算順序你可以看成由右往左運算。首先運算i--,然後運算i++這樣

而後置++和--會等到該行表示式運算完畢後,再另行++,--你這個列印完之後,i值依然為 8

14樓:

參數列是從右至左計算壓棧的,那不一眼看出就8788了嗎?

jsp中的表示式和表示式有什麼區別

舉個例子更能說明問題 string username abc 下面兩句 是一樣的效果,標識裡面的是jsp 變數 是 out.println 變數 的簡寫方式 使用者 username 使用者 out.println username 是輸出語句,將表示式結果轉換成字串,在頁面輸出 是jsp 片段,在...

易語言正規表示式,易語言中怎麼用正規表示式

版本 2 支援抄庫 regex 支援庫 spec 區域性變數 正則,正規表示式 區域性變數 搜尋,搜尋結果,0 區域性變數 文字,文字型 常量1 就是被搜尋的文字 小明 文字 常量1 正則.建立 搜尋 正則.搜尋全部 文字 除錯輸出 搜尋 1 取子匹配文字 文字,1,s s 就可以了 用這個 d d...

普通的邏輯函式表示式化成與非與非表示式有什麼方法嗎?數位電路

南訣 先化簡成最簡與或式,再用反演律。例如 拓展資料 1 邏輯函式 logical function 是數位電路 一種開關電路 的特點及描述工具,輸入 輸出量是高 低電平,可以用二元常量 0,1 來表示,輸入量和輸出量之間的關係是一種邏輯上的因果關係。仿效普通函式的概念,數位電路可以用邏輯函式的數學...