c語言中《與《的區別是什麼,C語言中 與 的區別是什麼?

2021-08-13 22:26:27 字數 6653 閱讀 7424

1樓:匿名使用者

舉個例子你就明白了。像&=,+=,|=這些比較常用一點兒。比如 int a; a +2 與 a+=2;效果是不一樣的,a+2,並未改變a的值,但是a+=2,效果等於a = a+2;a的值實際上是增加了2.

所以《也是一樣的,a<<2這句只是一個運算,就是a左移2位,但是並未改變a的值,但是a<<=2,相當於 a = a<<2,改變了a的值

就像是 int x = 1;x +1;這時x的值並沒有改,但是x+=1,代表x加了1,這時x= 2;就這樣,不明白再問我

2樓:匿名使用者

a <<=5;

就相當於

a = a <<5;

操作完給自己賦值

《就只有一個功能,就是移位

3樓:匿名使用者

針對你追問中的問題:語句return(x >> (p+1-n) & ~(~0 << n); 移位運算子的優先順序高於位操作運算子,該語句看成x右移 (p+1-n) 位後和 ~(~0 << n) 這個運算元進行與運算。

這裡為相應變數代入數值作為例子,設x為12,(p+1-n) 為2,n為1,則x >> (p+1-n):12>>2 ,假設是8位的系統,則為:00001100>>2 -> 00000011(對應十進位制為3),再看 ~(~0 << n),即為

~(~0 << 1) ,看裡層的~0 << 1 (注二進位制:0:00000000,~0:

11111111) ,左移1位後為:11111110,再取反:00000001,最後對二者進行與運算00000011 & 00000001 ,為00000001,對應十進位制的值為1,該值經由return語句被返回,由呼叫該函式的函式接收,如:

int getnum(int p,int n)int main()

4樓:匿名使用者

a <<= b 等價於 a = a << b,除了只被求值一次。

在c語言中 <<與<<=的區別

5樓:海天盛筵

在c語言中bai

《與<<=唯一的一個區別就du

是作用不同。

c語言zhi

中的>>和《分別dao

是左移運算子和右回移運算子,用於整數在二進答制形式的移位運算;

關係運算子用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。

在c語言中x<<=1等於x=x<<1,是把x左移1位以後值儲存回x裡,x發生變化了。

擴充套件資料:

<<、=運算子在c語言中的功能:

1、《的功能

把“<<”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0。如a<2、=的功能

對物件進行賦值,如a=b,則a的值為b。在c語言中也常常將賦值運算子=與其他的運算子結合起來,表示按照優先順序順序處理物件後,再對物件進行賦值。

結合方向右結合(自右至左)單目運算子

!邏輯非運算子

~按位取反運算子

++自增運算子

--自減運算子

-負號運算子

(型別)型別轉換運算子

*指標運算子

&地址與運算子

sizeof長度運算子

6樓:非常可愛

《與<<=只有一du個區別就是作用zhi不同。

c語言dao中的》和《分別是左移運版算符和右移運算子,用於整權數在二進位制形式的移位運算;

關係運算子用於比較運算。包括大於(>)、小於(<)、等於(==)、大於等於(>=);小於等於(<=)和不等於(!=)六種。

在c語言中x<<=1等於x=x<<1,是把x左移1位以後值儲存回x裡,x發生變化了。

擴充套件資料結合方向右結合(自右至左)單目運算子

!邏輯非運算子

~按位取反運算子

++自增運算子

--自減運算子

-負號運算子

(型別)型別轉換運算子

*指標運算子

&地址與運算子

sizeof長度運算子

7樓:匿名使用者

x << 1 得到的結果是左移1位後的值,它被儲存在一個臨時變數中,與x無關,即x的值不變。

回x <<= 1 相當於 x = x << 1,是答將x左移1位以後的值儲存回x中,x發生了變化。

好比說:

x + 10 得到比x大10的值——在臨時變數中,但x不變。

x += 10 則是x增大10,x變了。

8樓:匿名使用者

不一樣,看看邏輯運算和賦值 優先順序。

9樓:匿名使用者

直接用,別超額度就行

c語言中=和==有什麼區別

10樓:匿名使用者

= 是賦值操作

==是比較是否相等操作

if(i=1)是永遠成立的

if(i==1)只有當1值是1才成立

11樓:賈文浩

i=i是把數字1的值賦給i

i==1是i的值等於1

12樓:

前者為賦值,後者為判斷

13樓:匿名使用者

=是複製語句,==是判斷前後是否相等

14樓:鍾影南門弘大

=是賦值操作,

==是比較是否相等操作。

15樓:亥熙延潔玉

你是初學吧!“=”是賦值,例如inta=

3;intb=

a;那麼b

=3.“==”關係運算子,表示恆等。一般用在條件判斷中,例如if(null

==fp),如果fp恆等與null,那麼。。。。;

16樓:閻晨漫漾漾

一個=是賦值,兩個則是判斷是否相等

17樓:首桂蘭慕溪

c語言中的

\代表轉義,輸出

.\會提示錯誤,但是./是沒有問題的只是兩個字元而已如果要輸出\

那麼就要寫兩個\

即\\才可以

。c中定義了一些字母前加"\"來表示常見的那些不能顯示的ascii字元,如\0,\t,\n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。

望採納,謝謝

18樓:操清昶養琪

=號是"附值"==是"精等於"區別就在於是不是能夠等於一個變數如:a=3,a=b把b的值賦給a;a==3a精等於3,但是卻不能寫成a==b;所以最大的區別就在於:==號右側只能是個確定得知,而不能是個變數,而=號可以。

19樓:文賢儀春曉

"="是賦值運算子;

“==”是等於運算子。

20樓:賁心繫玲瓏

=是賦值的意思,==才是判斷兩個變數是否相等。

21樓:允贍卞舉

比如if(a==b)

為什麼不能是if(a=b)?

=是賦值運算子,使用賦值運算子=可以把計算的結果儲存到變數中。

而==是"等於"的意思。用法很簡單.

a=b(即將b賦值給變數a,而不是a等於b)是一個賦值操作.

如果你用了賦值語句(a=b)那麼程式運算的結果將很有可能是錯誤的.在一個賦值(單目=)表示式計算後將改變該表示式和變數的值.如你所說的a=b;則a和表示式a=b的值均為b,條件判斷語句if(a=b)在你的程式中將毫無意義.

在某本國產c++教科書中這被稱為賦值運算子(=)的"***".

a==b的意思即a等於b,在條件判斷時兩邊相等則條件成立,否則不成立.

參考資料:

22樓:鬱宜似瀅瀅

=是賦值,和數學中的函式一樣,a=b

+1;表示b+1的值賦予a,而==表示判斷兩個值是否相等,如a

==b就表示讓計算機判斷a是否等於b,用於對條件是否滿足的判斷

c語言中/n與\n的區別是什麼?

23樓:匿名使用者

\n 轉義字元 回車 換行符 acsii 13/n 就是字串 /n 沒有轉義的意思 按原樣輸出例如printf("test\n");

printf("test/n");

結果是專

test

test/n

若printf("test/n");

printf("test\n");

結果是test/ntest

//注test/ntest下一行為

屬\n效果

c語言中巨集定義的1<<0 和直接定義1有什麼區別

24樓:匿名使用者

#define e1 1<<0

#define e2 1

e1+4 // 結果是16

e2+4 // 結果是5

至於是bug還是故意如此,在下就不知道了

25樓:金色潛鳥

巨集定義#define eot 1 << 0是規定在預編譯時,把 下面程式中 遇到的 詞 eot 用 字串 1 << 0 替代。

所以 不能 換成版 字元 1。

例如:權

#define eot 1 << 0

int x=1;

x = x + eot + 2;

printf("%#x ", x);

和#define eot 1

int x=1;

x = x + eot + 2;

printf("%#x ", x);

得到的結果 不同。前者 0x8, 後者 0x4--------

除非你已看過整個程式,你能確認 用 1 << 0 替代 和 用 1 替代 結果 一樣。

c語言中,使用>與>=,<與<=的區別是什麼?

26樓:萢萢

>不包括等於,>=包括等於的情況。

《不包括等於,<=包括等於的情況。

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

27樓:弋風

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

28樓:匿名使用者

複合賦值。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

29樓:匿名使用者

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語言中與的區別,C語言中 與 的區別

區別如復下表 擴充套件資料具體區別制的例子 bai1 c 語言輸入輸出du printf a d,b d zhi,a,b scanf d d d a,b,c 2 vb 語言的輸入輸出 inputbox x 輸入 x 的值dao print x x 而且,這兩種運算子,還分為字首運算和字尾運算 如 i...

c語言中 和 的區別,c語言中「 」號是什麼意思?

c語言中 與 的區別如下 是否為單行註釋。是用於多種語言的單行註釋語句。是註釋語句,不限制行數,在 和 之間的即為註釋。實用性的區別。是用於多種語言的單行註釋語句,適用方便快捷,但是實用性不如多行註釋。是註釋語句,不限制行數,在 和 之間的即為註釋,實用性大,但是符號鍵盤敲打麻煩。程式編譯時,不對註...

c語言中a與a的區別是什麼,簡單點講

a 7a 先使用a的值,a在自增 a 先自增在使用a的值 b a b 7 c a c 8 第乙個是先運算,再自增。第二個是先自增,再運算 c語言中a 與 a的區別是什麼?詳細一點,謝謝 a 是先返回a的值,再執行 運算。a 是先執行 運算,在返回a的值。例如 include int main a 7...