c語言和操作符怎麼用,C語言 和 操作符怎麼用

2021-05-06 04:38:05 字數 5709 閱讀 4997

1樓:水劃過

c語言?和:是三目運算子,也叫三元運算子。

語法:表示式1 ? 表示式2 : 表示式3;

函式:先執行表示式1,執行完畢,如果表示式1的結果為真,則執行表示式2,整個表示式的結果就是表示式2的結果,否則執行表示式3,結果是表示式3的結果。

例如:int res=1?10:20;

可以簡單理解為表示式1成立嗎?成立執行表示式2,否則執行表示式3。

2樓:奔跑的小風

用法(判斷表示式?a表示式:b表示式)//如果判斷表示式為真,則執行a表示式,否則執行b表示式

例子(將ab中較大的值賦給t):

int a=3,b=4,t;

t=(a>b?a:b);//顯然a>b為假,所以取b,然後賦值給t

3樓:匿名使用者

a>b?1:0;

若a>b,則表示式值為1,反正規表示式值為0

就是if...else...的一種短小的寫法

4樓:匿名使用者

運算子c = c > 0 ? 1 : -1;

c語言中逗號運算子怎麼用?

5樓:匿名使用者

一、用法:

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

main()

先算括號內的值: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;

擴充套件資料

運算子優先順序:

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

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

3、基本的優先順序需要記住:指標最優,單目運算優於雙目運算。如正負號。

先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 && 7等價於 (1 << (3 + 2))&&7.

邏輯運算最後計算。

6樓:次次次蛋黃米亞

在c語言中,多

個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。

具體用法:

假設b=2,c=7,d=5,

a1=(++b,c--,d+3);

a2=++b,c--,d+3;

對於第一行**,有三個表示式,用逗號分開,所以最終的值應該是最後一個表示式的值,也就是d+3,為8,所以a1=8。

對於第二行**,那麼也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高),所以最終表示式的值雖然為d+3,為8,但a2=3。

注意:逗號運算的結合性是從左至右,完畢之後整個表示式的值是最後一個表示式的值。

假設:int a,x=2,y=5;

(1)a[1]=(x+3,y++,x++);那麼最終結果是:a[1]=2 x=3 y=6; )

(2)a[2]=(x++,x+3,x+7);那麼最終結果是:a[2]=10 x=4;

7樓:天雲一號

逗號運算子( , )是c語言運算子中優先順序最低的一種運算子,結合順序是從左至右,用來順序求值(最後一個逗號後面表示式的值作為整個表示式的值)。

下面舉例說明逗號運算子的使用方法:

int a=3, b=5, c;

c = a>b, a+b;   // 執行後c值為0,因為逗號運算子的優先順序低於賦值運算子,所以先將a>b的結果(為0)賦值給c,之後運算a+b(結果不儲存),所以c=0

c = (a>b, a+b); // 執行後c值為8,因為括號的優先順序高於賦值運算子,所以先算括號內的表示式,此時計算結果為最後一個表示式的值,即a+b的值,所以c=8

8樓:匿名使用者

2樓說的很詳細了 ,逗號運算子

的作用是將若干表示式連線起來。它的優先順序別在所有運算子中是最低的,結合方向是"自左至右"的。其值是最後一個表示式的,其間所有的都要計算,你所說的 a=12+(s+2,d+4); 先算s+2.

的4,然後算d+4,最後逗號表達是式的值是d+4=7,整個表示式的值是12+7=19,

9樓:匿名使用者

回答zw791:

括號運算子的結果是取括號內最右邊表示式的結果.

d+4=7,12+7=19

10樓:匿名使用者

2-4 c基礎知識 3逗號運算子

11樓:匿名使用者

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。

一個逗號表示式又可以與另一個表示式組成一個新的逗號表示式,如(a=3*5,a*4),a+5 先計算出a的值等於15,再進行a*4的運算得60(但a值未變,仍為15),再進行a+5得20,即整個表示式的值為20。

逗號表示式的一般形式可以擴充套件為

表示式1,表示式2,表示式3……表示式n

它的值為表示式n的值。

逗號運算子是所有運算子中級別最低的。因此,下面兩個表示式的作用是不同的:

① x=(a=3,6*3)

② x=a=3,6*a

第①個是一個賦值表示式,將一個逗號表示式的值賦給x,x的值等於18。第②個是逗號表示式,它包括一個賦值表示式和一個算術表示式,x的值為3。

其實,逗號表示式無非是把若干個表示式「串聯」起來。在許多情況下,使用逗號表示式的目的只是想分別得到各個表示式的值,而並非一定需要得到和使用整個逗號表示式的值,逗號表示式最常用於迴圈語句(for語句)中.

請注意並不是任何地方出現的逗號都是作為逗號運算子。例如函式引數也是用逗號來間隔的。如

printf("%d,%d,%d",a,b,c);

上一行中的「a,b,c」並不是一個逗號表示式,它是printf函式的3個引數,引數間用逗號間隔。

如果改寫為

printf("%d,%d,%d",(a,b,c),b,c);

則「(a,b,c)」是一個逗號表示式,它的值等於c的值。括弧內的逗號不是引數間的分隔符而是逗號運算子。括弧中的內容是一個整體,作為printf函式的一個引數。

c語言表達能力強,其中一個重要方面就在於它的表示式型別豐富,運算子功能強,因而c使用靈活,適應性強。在後面幾章中將會進一步看到這一點。

12樓:匿名使用者

一、逗號運算子的特性及作用

逗號運算子的作用是將若干表示式連線起來。它的優先順序別在所有運算子中是最低的,結合方向是"自左至右"的。

如:3*3,4*4

二、逗號表示式

逗號表示式的一般形式是:表示式1,表示式2,表示式3……表示式n

逗號表示式的求解過程是:先計算表示式1的值,再計算表示式2的值,……一直計算到表示式n的值。最後整個逗號表示式的值是表示式n的值。

看下面幾個例子:

x=8*2,x*4 /*整個表示式的值為64,x的值為16*/

(x=8*2,x*4),x*2 /*整個表示式的值為128,x的值為16*/

x=(z=5,5*2) /*整個表示式為賦值表示式,它的值為10,z的值為5*/

x=z=5,5*2 /*整個表示式為逗號表示式,它的值為10,x和z的值都為5*/

逗號表示式用的地方不太多,一般情況是在給迴圈變數賦初值時才用得到。所以程式中並不是所有的逗號都要看成逗號運算子,尤其是在函式呼叫時,各個引數是用逗號隔開的,這時逗號就不是逗號運算子。

如:printf("%d,%d,%d",x,y,z);

13樓:匿名使用者

為什麼算完以後a=19?

14樓:匿名使用者

逗號不是運算子```一般是宣告多個變數中間的間隔 比如 int a,b=3,c=4;

c語言中的邏輯運算子怎麼用

15樓:揚鈺藏思瑩

首先邏輯運算子的優先順序是非

與或,對於「與」只有運算子兩邊同時為真(如果兩邊是表示式則結果都為非0)結果為真即為1,例如:5+3

&& 1

結果就為1,1-1

&&1結果就為0;

對於「或」有一個為真結果就為真即結果為1;例如:2+1||0結果為1;3-3

||2-2結果為0

非沒有什麼好說的就是取反

16樓:沙幼珊義志

&&邏輯與,不過一旦左邊的表示式為假,不進行右邊表示式的運算。相當於我們的「並且」

||邏輯或,相當於我們日常生活中使用的「或」,也是左邊的一旦為真,後面的也不判斷。

!,取反,是單目運算子,將後面表示式的值取反。若後面的為真(非零),則取反後為假(0);後面的為假(0),取反後為真(1)

17樓:

1.&&

1&&1 運算結果是1

1&&0 運算結果是0

0&&1 運算結果是0

0&&0 運算結果是0

2.||

1||1 運算結果是1

1||0 運算結果是1

0||1 運算結果是1

0||0 運算結果是0

3.!!1 運算結果是0

!0 運算結果是1

18樓:尖子生管理員小宇

c語言程式設計中的邏輯運算子使用詳解

19樓:柴海依歆

在c語言中,邏輯與運算的運算子為「&」和「&&」,是雙目運算子,其中「&&」為短路與,以下為詳細用法:

用法1:表示式1&表示式2

用法2:表示式1&&表示式2

當表示式1與表示式2的值皆為非0(真)時,則整個表示式的值為非0(真),否則,整個表示式的值為0(假)。

其中,用法1中用的是「&」,當運算表示式時,「&」兩邊的表示式都要進行運算,也就是說,無論表示式1的值為真還是假,都要運算表示式2;用法2中用的是「&&」,前面說了這是短路與,所以,當表示式1為假時,則整個表示式為假,且不再執行表示式2。

c語言和c先學哪個好,C語言和c 先學哪個好?

c語言和c 當然是先學c語言比較好,c語言一般認為是程式設計新手最好初次程式設計接觸的語言了,其中的語法和一些思想對其它語言都有一定的影響。有了c語言,其它語言問題應該都不會太大的。c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器...

c語言和vb哪個更好考,C語言和VB哪個更好考

3 眾多的控制元件讓程式設計變得象壘積木一樣簡單。4 visual basic 的全部漢化讓我們這些見了english就頭大的人喜不自禁。缺點 1 visual basic 不是真正的物件導向的開發文具。2 visual basic 的資料型別太少,而且不支援指標,這使得它的表達能力很有限。3 vi...

C語言和C 的區別

c與c 的最大區別 在於它們的用於解決問題的思想方法不一樣。之所以說c 比c更先進,是因為 設計這個概念已經被融入到c 之中 而就語言本身而言,在c中更多的是演算法的概念。那麼是不是c就不重要了,錯!演算法是程式設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,c加上好的設計 也能寫出非常好的...