當前位置:首頁 » 編程語言 » c語言中表達式的注意事項
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中表達式的注意事項

發布時間: 2022-08-13 00:01:52

1. c語言中,判斷一個表達式的值時,應該注意什麼問題

每一個子表達式用括弧括起來,等於號不能寫成賦值號,區分邏輯與或跟按位與或。

2. 簡述C語言中函數的形式參數定義時的注意事項 求解...

1、形參個數不能太多,多了就用結構體指針吧;
2、不需要攜帶數據返回的放在前面,需要攜帶數據返回類型的放在後面吧;
3、不要直接傳遞結構體哦;
4、一般地,指針類型最好加上const修飾,除非有特殊用途;
5、盡量不要使用bool類型做為形式參數;
6、別忘了給一個簡潔好聽的名字

3. c語言逗號表達式的運算規則

1、當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表達式的值是最後一個表達式的值。
main()
{int a,s,d;
s=2;
d=3;
a=12+(s+2,d+4);
}
先算括弧內的值:s+2=4,d+4=7;括弧內應為(4,7),括弧內取值只取最後一個,如果沒有括弧則取第一個;a=12+7=19。
x=(y=3,(z = ++y+2) +5);
是首先把y賦值為3,把y遞增為4,然後把4加上2,把結果6賦值給z,接下來把z加5最後把x賦為結果值11。
2、注意事項:逗號運算符( , )是C語言運算符中優先順序最低的一種運算符。

4. c語言中逗號運算符的功能和使用方法

一、用法:

1、當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表達式的值是最後一個表達式的值。

main()

{int a,s,d;

s=2;

d=3;

a=12+(s+2,d+4);

}

先算括弧內的值:s+2=4,d+4=7;括弧內應為(4,7),括弧內取值只取最後一個,如果沒有括弧則取第一個;a=12+7=19。

x=(y=3,(z = ++y+2) +5);

是首先把y賦值為3,把y遞增為4,然後把4加上2,把結果6賦值給z,接下來把z加5最後把x賦為結果值11。

2、注意事項:逗號運算符(,)是C語言運算符中優先順序最低的一種運算符。

二、其它用法:

1、在for裡面的應用:

int i;int j;

for(i=0,j=0;i<5;i++,j++)

2、當分隔符:int i,j;

(4)c語言中表達式的注意事項擴展閱讀

運算符優先順序:

1、優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

2、相同優先順序中,按結合順序計算。大多數運算是從左至右計算,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。

3、基本的優先順序需要記住:指針最優,單目運算優於雙目運算。如正負號。先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 && 7等價於 (1 << (3 + 2))&&7.邏輯運算最後計算。

5. 關於正則表達式在c語言中的使用問題

單看這個正則的意思是:
匹配以若干個(包括0個)空格或製表符開頭,後跟一串不以」/「開頭的字元。
顯然這和你的要求不符。因為[^/]也可以匹配空白字元。比如:
空格//注釋
你的本意是[:blank:]*匹配空格,[^/]不匹配」/「所以該行應該不匹配。
但是,實際的匹配過程沒有在此打住:
正則回溯,這一次嘗試[:blank:]*神馬都不匹配,[^/]匹配空格,.*匹配剩餘字元,於是這一行就被匹配了。
稍微改動就可以解決這個問題,^[:blank:]*[^\s/].*$其中\s匹配所有不可見字元,或許你也可以寫成^[:blank:]*[^[:blank:]/].*$這種形式,再或者也可以寫成只匹配注釋的正則,再從不匹配的裡面區分代碼和空行。

6. c語言的表達式是什麼

C語言表達式的定義是:用C語言運算符將運算對象連接起來的式子,就叫表達式。

C語言在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。

當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則就會顯得十分重要。

基本構成:

數據類型:C的數據類型包括:整型、字元型、實型或浮點型(單精度和雙精度)、枚舉類型、數組類型、結構體類型、共用體類型、指針類型和空類型。

常量與變數:常量其值不可改變,符號常量名通常用大寫。

變數是以某標識符為名字,其值可以改變的量。標識符是以字母或下劃線開頭的一串由字母、數字或下劃線構成的序列,請注意第一個字元必須為字母或下劃線,否則為不合法的變數名。變數在編譯時為其分配相應存儲單元。

數組:如果一個變數名後面跟著一個有數字的中括弧,這個聲明就是數組聲明。字元串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,中括弧內的索引值是從0算起的。

指針:如果一個變數聲明時在前面使用 * 號,表明這是個指針型變數。換句話說,該變數存儲一個地址,而 *(此處特指單目運算符 * ,下同。C語言中另有 雙目運算符 *) 則是取內容操作符,意思是取這個內存地址里存儲的內容。指針是 C 語言區別於其他同時代高級語言的主要特徵之一。

指針不僅可以是變數的地址,還可以是數組、數組元素、函數的地址。通過指針作為形式參數可以在函數的調用過程得到一個以上的返回值,不同於return(z)這樣的僅能得到一個返回值。

7. C語言當中,表達式語句可不可以這樣表達會出現什麼問題,為什麼

不會出現什麼錯誤。
但是第2種表達式有返回值,返回y的值。

輸出結果2種方法一樣。

8. c語言 逗號表達式

c語言逗號表達式是由左向右進行的:k=3*2=6,K+2=8,表達式返回8。

逗號表達式用法:

當順序點用,結合順序是從左至右,用來順序求值,完畢之後整個表達式的值是最後一個表達式的值。

示例:

main()

{int a,s,d;

s=2;

d=3;

a=12+(s+2,d+4);

}

(8)c語言中表達式的注意事項擴展閱讀

注意事項

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

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

(3) 逗號運算符的優先順序別在所有運算符中最低。

9. 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:你們的考試考運算符結合方向?天......

10. 求助:C語言中有關表達式和表達式語句的問題~~

表達式就是表示比較大小,賦值,算數運算之類的式子。
C程序要由語句構成,光有表達式是不行的,在表達式之後加上;就成了表達式語句了。
《C程序設計語言》是這樣寫的:「在x=0、i++或printf(...)這樣的表達式之後加上一個分號(;),它們就變成了語句。」「在C語言中,分號是語句的結束符」