請問C語言中A B C 代表什麼意思?是A與(B和C)或的結果之後再與呢,還是A和B與,或者A和C與

2021-04-02 08:17:49 字數 5189 閱讀 8313

1樓:匿名使用者

先計算括號裡面的 也就是

b|c然後 再把結果 和a與。

都是位操作。

在c語言中 括號優先順序高於一切。

2樓:匿名使用者

只有一個符號說明是按位計算,是b先按位與c之後按位且a

3樓:匿名使用者

括號是先計算的意思。 |或的意思。&與的意思

4樓:煙火夜空

b 和 c 後的結果,再 與 a

c語言中「>>=,<<=,&=,^=,|=」分別表示什麼意思?請舉例說明

5樓:弋風

1、c語言中的 >>= 意思為:右移後

賦值**示例為:

x = 8; x >>= 3;

右移後結果為:00000000 00000000 00000000 00000001

2、c語言中的 <<= 意思為:左移後賦值**示例為:

x = 8;

x <<= 3;

左移後賦值結果為:00000000 00000000 00000000 01000000

3、c語言中的 &= 意思為:按位與後賦值**示例為:

x = 0x02;

x &= 0x01;

按位與後的結果為:0x00

4、c語言中的 ^= 意思為:按位異或後賦值**示例為:

x = 0x02;

x ^= 0x01;

按位異或的結果為:0x03 等同於00115、c語言中的 |= 意思為:按位或後賦值**示例為:

x = 0x02;

x  |= 0x01;

按位或的結果為:0x03 等同於0011

6樓:匿名使用者

複合賦值。a>>=b相當於 a = a >> b; 以此類推。

a>>=b 表示把二進位制a右移b位,比如:

a = 8;

a >>= 3;

即:二進位制8: 00000000 00000000 00000000 00001000

右移3位: 00000000 00000000 00000000 00000001

結果是1,再把右移結果賦值給a, 即最後a=1。

<<= 同上,只不過是左移賦值。

&= 是按位與之後賦值,^=是按位異或之後賦值,|=是按位或之後賦值。與,或以及異或的操作很簡單:

101010         101010        101010

& 011100       | 011100      ^ 011100

---------     ----------    ----------

001000         111110        110110

7樓:匿名使用者

a = 0010(0x02)

a >>= 1; (a 右移1位並把右移的結果重新賦值給a) 此時a = 0001(0x01);

a <<= 1;(a左移1位並把左移的結果重新賦值給a) 此時 a = 0100(0x04);

a &= 0x01;( a與0x01 按位與,並把按位與的結果重新賦值給a)。此時a = 0x0;

a |= 0x01;( a與0x01 按位或,並把按位或的結果重新賦值給a)。此時a = 0011(0x03);

a ^= 0x01;( a與0x01 按位異或,並把按位異或的結果重新賦值給a)。此時a = 0x03;(異或的意思就是,該位均為相同的則該位結果為0,該位均為不同的則該位結果為1)

c語言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什麼區別?

8樓:美好一瞬間

「=」是賦值符,

把c的值賦給b賦給a,最後a、b、c的值都相等,「==」是判斷符,結果為bool型。

1、c語言其語言同其語言般區 ,賦值操作符 與 等於 運算子c語言區。

2、= 賦值 == 等於運算 說 a=b=c, 表示式執行a值賦給b、c執行完abc值相等。

3、 a=b==c,複合表示式先a值賦給b與c比較相等則返0,否則返非零值。

4、a==(b=c),複合表示式先執行括號內容(即b值賦給c)比較a、c相等則返0否則返非零值。

5、a==(b==c),複合表示式先比較b、c值相等則返0否則返非零值比較a與(b==c)返值,看c區 = 跟 ==。

6、 ps:lz程式風格且習慣引用stdio.h希望改附我改寫程式: #includeint main()  執行結:3,0,0,0

9樓:佔同書母癸

c語言和其他語言不同,在其他語言中,一般不區分

賦值操作符與等於

運算子,但是c語言很區分。

=是賦值

==是等於運算

也就是說,

a=b=c,

是一個表示式,執行到這裡時,將a的值賦給b、c,執行完後abc的值相等;

a=b==c,是一個複合表示式,先將a的值賦給b,然後與c比較,如果相等則返回0,否則返回一個非零值;

a==(b=c),是一個複合表示式,先執行括號中的內容(即將b的值賦給c),然後比較a、c,如果相等則返回0,否則返回一個非零值;

a==(b==c),是一個複合表示式,先比較b、c的值,如果相等則返回0,否則返回一個非零值,然後比較a與(b==c)的返回值(注意這裡不是再比較a與b或c,以前就錯在這裡過,希望lz注意)。

可以看到c是區分=跟

==的,雖然對新手很麻煩、容易錯,但是一旦熟練之後會覺得很靈活,能把賦值語句放到任何你喜歡的地方。

ps:lz的程式風格不好,而且還不習慣引用stdio.h,希望改正。附我改寫的程式:

#include

intmain()

執行結果:3,0,0,0

10樓:桓培勝陰酉

c語言中一個等於號表示,將右邊的值賦給左邊,兩個等於號在一起才表示真正的等於,是關係運算子。運算順序都是從右到左。

上面的個程式執行的結果為3,

0,0,0

11樓:令狐玉枝府培

a=b=c,是賦值語句,從右到左,a=3,b=3a=b==c

是邏輯語句,相當於(a=b)==c,先將b值賦值給a,然後和c比較是否相等,這句返回為0

a==(b=c),同上句.

a==(b==c),先計算括號內的b==c返回為0,然後在a==0,返回0。

=和==是2中不同的表達

12樓:能淑珍類倩

a=b=c

b=3;a=3;

a=b==c

b==c結果為1,再a=1,輸出為3;

a==(b=c)

等價於a==3,輸出為1;

a==(b==c)

b==c結果為1,a==1結果為0,輸出為0;

最後的輸出是

3,3,1,0

13樓:示奕琛問雀

=是賦值,==是關係等,=的運算級別低,==的運算級別高,=從右向左結合,==從左向右結合

14樓:匿名使用者

c語言中,a=b=c,a=b==c,a==(b=c),a==(b==c)有什麼區別:

一個是賦值,一個是邏輯,運算順序不同,有一個優先順序的不同,還有就是結合性不同,一個是向左,一個是向右。

c語言中,a=b=c,a=b==c,a==(b=c),a==(b==c)解答方法:

第一步是最後一個a==(b==c),b是2,c是3,明顯不等,所以b==c的值是0,然後a是1,和0又不等,所以整個式子值為0;第二步為倒數第二個,a==(b=c),先將c賦給b,此時b和c都為3,再判斷a與b是否相等,a為1,不等,整個式子為0;第三步:a=b==c,經過上一步,此時b和c都為3,所以判斷b==c為真,值為1,然後將1賦給a,輸出a,就是1;第四步:a=b=c,自右向左,先將c值賦給b,再將b值賦給a,輸出a,即為3,結果3,1,0,0。

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

15樓:匿名使用者

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。

c語言?和:操作符怎麼用

16樓:水劃過

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

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

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

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

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

17樓:奔跑的小風

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

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

int a=3,b=4,t;

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

18樓:匿名使用者

a>b?1:0;

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

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

19樓:匿名使用者

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

c語言中的,c語言中 是什麼意思

c語言中的 是邏輯運算中的非運算。是c語言中的非運算子,在變數前面使用它,會構建非運算表示式,表示式的返回結果是個布林值 也就是隻有true或false 對變數使用時,如果變數不是布林資料型別,將會強制轉化為布林型別再使用,如整形變數123將被轉化為true,整形變數0將被轉化為false。擴充套件...

c語言中include什麼意思,C語言中 include什麼意思

樓下說錯了,所有的非標準標頭檔案均必須使用 比如 include會報錯 無法找到該檔案。include就是包含標頭檔案 最基礎的stdio.h是標準的輸入輸出檔案,printf和scanf函式等在這當中。同樣的,自己也可以寫標頭檔案。可以直接指定標頭檔案目錄 在c語言中,include 被稱為檔案包...

c語言中是什麼意思c語言中x是什麼意思

在c語言中,x代表的意思是按位取反的意思。將x按位取反 比如x 10101010b。那麼 x 01010101b。還要注意,在c語言中,還有邏輯取反符號 x 的返回值只有0和1兩種。如果x為0,則!x 1。如果x不等於0.則!x的返回值為0。擴充套件資料 c語言關鍵字。signed 宣告有符號型別變...