c語言中a 0 1 是什麼意思

2021-04-12 07:18:53 字數 6507 閱讀 1090

1樓:飛天失憶豬

a指向一個二維數列,是一個指標的指標,*(*(a+0)+1)是第一行第二列元素的值

c語言中a=(0<<2)|(1<<3)是什麼意思

2樓:楓璽

"="是賦值運算子,可以將右邊的運算結果賦值給左邊的變數。"<<"是左移運算子,將數左移一位即相當於擴大2倍。"|"是位或運算子,即按二進位制儲存資料的位進行或運算。

a=(0<<2)|(1<<3) 中有括號,先運算括號中的表示式,0<<2 結果還是0,1<<3 結果為1*2*2*2=8,而0|8=8。所以結果為:a= 8。

擴充套件資料c語言的運算子:

1、算術運算子:* - + / %

2、關係運算子: > < == != >= <=3、邏輯運算子:! && ||

4、位運算子:<< >> ~ | ^ &

5、賦值運算子:=及擴充套件賦值運算子

6、條件運算子:?:

7、逗號運算子:,

8、指標運算子:*和&

9、求位元組數運算子:sizeof

10、強制型別轉換運算子:(型別)

11、分量運算子:. ->

12、下標運算子:[ ]

13、其他:如函式呼叫運算子:()

3樓:匿名使用者

=賦值運算子 將右邊的運算結果賦值給左邊的變數<<左移運算子 左移一位,相當於擴大2倍|位或運算子 按二進位制儲存資料的位進行或運算,有1則1,全0為0

a=(0<<2)|(1<<3) 中有括號,先運算括號中的表示式0<<2 結果還是0

1<<3 結果為1*2*2*2=8

0|8=8

所以結果為:a= 8

4樓:煙火夜空

c語言的移位運算,從數學角度講,就是 乘法 的一種特殊情況,左移1 = ×2,左移 2= ×4,左移n,就是 × 2的n次方。於是,題目就可以理解為:

把 0 ×4, 把 1 × 8 後,把前面2個結果,按位 或 運算。

因為 0 × 4 的結果是 0,而 0 或上 任何數,都等於 任何數 本身,所以 結果 又 為 1×8=8,

5樓:永遠de青春

0 二進位制表示 0000 <<2表示向左移動2位右端補0 但還是01 二進位制表示 0001 <<3表示向左移動3位右端補0 是1000 為 8

|表示按位或操作,1或1的1, 1或0得1, 0或1的1,0或0得00000

1000

——10008

6樓:匿名使用者

《位移運算子 , | 位的或運算子

a<

1<<3相當於1乘以2的3次方,即1*8=8;

所以a=(0<<2)|(1<<3)=0|8=8

7樓:匿名使用者

<<表示向左移,低位補0 比如一個二進位制數整數1111 1111 1110 1000向左移動

4位1111 1110 1000 0000 |表示取或 1111 1110 1000 0000 |1111 1111 1110 1000則為 1111 1111 1110 1000有1則為1 倆個都是0則0

8樓:苦行僧

x<表示將一個數x的所有二進位制位全

部左移n位,x>>m表示將一個數x的所有二進位制位全部右移m位,由此可知,0<<2還是0,1<<3就是8了,「|"是按位或的運算子,兩個相應的二進位制位中只要有一個為1,該位的結果就是1。所以最後的a的二進位制位是00001000,用十進位制數表示a=8.問題解決。

9樓:匿名使用者

《左移操作; | 逐位或操作

0<<2 = 0;

1<<3 = 8;

0|8 = 8;

所以 a = 8;

c語言中(a!=0)?:0:1是什麼意思?

10樓:蔚格柯欣愉

\0是字串結尾的標誌,比如一個字串「abc",它真實存的是abc\0。

==是比較運算子,這個比較運算子是相等的意思

11樓:關桂鄭幼怡

可以自己抄試著編個程式,執行襲一下,如:

#include

void

main()

;printf("%d\n",a[0]++);

return0;}

程式執行到a[0]++的時候,a[0]=3;

等到所有語句執行完後,a[0]=4。

12樓:匿名使用者

如果a不等於0,那麼等於0,否則等於1

13樓:f立地成佛

這個可以寫成

if(a!=0)

else

printf("1");

這樣就理解了吧

c語言a[0]++是什麼意思

14樓:小夏在深圳

a[0]++也就是陣列中第一個值+1再存放到原位。

比如:int a[2];

其中a[0]=1; a[1]=5;

a[0]++以後,a[0]的值變為2。

&a[0]++是錯誤語句,編譯都不會過。因為++是後++,在執行該語句時是不計算的。a[0]++是個表示式而不是值,顯然用&取一個表示式的地址是非法操作。

&a[0]+1是正確語句,因為&的優先順序比+高,所以是先取a[0]的地址再給這個地址+一個元素所佔位元組數——就是說&a[0]+1是a[1]的地址。

擴充套件資料源**如下:

#include "stdio.h"

main()

15樓:銀月惡魔_仙劍

可以自己試著編個程式,執行一下,如:

#include

void main()

;printf("%d\n",a[0]++);

return 0;

}程式執行到a[0]++的時候,a[0]=3;

等到所有語句執行完後,a[0]=4。

16樓:匿名使用者

#include

int main()

;printf("%d\n",a[0]++);

return 0;

}結果是3 雖然我感覺是4.。。。不過很可惜

17樓:匿名使用者

變成a[1]=3

一個變數 後加上++ 比如a++ 就是自己加1

18樓:匿名使用者

a[0]++是這次命令後值加1,應該是a[0]=4

19樓:磊無敵

我同意樓上說的,其實你把**執行一下不就知道了

c語言中a-=a是什麼意思

20樓:我是果瘋

a-=a的意思為a=a-a,先用a減a,然後再將得到的結果賦值給a。-=實際上是一種縮寫形式,使得對變數的改變更為簡潔。

運算時,可以將其寫成熟悉的形式,從右向左依次計算,注意在每次計算時,變數的值會發生改變, 如不注意,就會導致錯誤的情況發生。

擴充套件資料:複合賦值運算子有下列這些:

符號 功能

+= 加法賦值

-= 減法賦值

*= 乘法賦值

/= 除法賦值

%= 模運算賦值

<<= 左移賦值

>>= 右移賦值

&= 位邏輯與賦值

|= 位邏輯或賦值

^= 位邏輯異或賦值

21樓:匿名使用者

表示a=a-a 即a=0的意思。

1、 -=是c語言中的一個複合運算子。

2、 -=為雙目運算, 形式為:

a-=b

表示含義為:

a=a-b

3、 相對於a=a-b的形式, a-=b要更簡潔,同時執行效率也略高。

4、對於a-=a,由於左右都是a,所以等效於a=0。

22樓:浙江衛健科技****

a+=a-=a*a;為連續賦值運算,從右向左計算。

於是原始的表達

式等效於:

a-=a*a;

a+=a;

也就是a=a-a*a;

a=a+a;

例如,a=5;

那麼a=a-a*a=5-5*5=-20;

a=a+a=-20 + (-20) = -40;

最終a為-40,表示式整體值也就是a最終值,一樣是-40。

23樓:我二次元穿越

從右往左算

初始值a=12

第一步:a+=a-=[a*=a] ,先算括號裡的 ——> a*=a 即 a=a*a=12*12=144

(經過第一步後,原本初始值a=12已經變成了a=144)第二步:a+=[a-=144] ,括號裡的a-=144,即 a=a-144=144-144=0

(經過第二步後,a的值變成了0)

第三步:a+=0 ,即a=a+0=0+0=0最後答案是:0

24樓:匿名使用者

這裡的a賦值10,這個式子從右往左算,先看a=a*,它表示為:a*=a<=>a=a*a=100,a-=a<=>a=a-a=100-100=0,a+=a<=>a=a+a=0+0=0。如此計算,記住要點為a*=b<=>a=a*b。

25樓:轉轉運動鞋

a的初值呢?

a初值為12時,a+=a-=a*=a結果為0步驟:這個表達

式的運算是從右向左的:

1. a*=a:a=a*a=12*12=1442.

a-=144: a=a-144=144-144=03. a+=0:

a=a+0=0+0=0。希望對你有幫助。

26樓:啊醬咩咩噠

2a-a²

具體計算步驟如下:

1、公式拆分,按照c語言計算方法和原則,這裡的「=」意思是賦值,即將等號右邊的數值賦值到左邊去。

所以公式可以依次拆分為

(1)a1=a*a

(2)a2=a-a1

(3)a3=a2+a

a是原來的賦值

2、以此計算原來的(1)(2)(3)式

結果為2a-a²

拓展資料:

c語言中計算或者賦值式是從右往左進行計算,但是計算具有一定的優先順序,以下是對優先順序的分類:

1、最高階

出現同級別運算子時的結合方向是從左往右(下面級別沒寫結合順序時,預設是從左往右)。

( )圓括號

[ ]下標運算子號

->指向結構體成員運算子

.結構體成員運算子

2、第二級

!、~、++、--、-、(型別)、*、&、sizeof。

這一級都是單目運算子號,這一級的結合方向是從右向左。

比如出現*p++,這時*和++同級別,先算右邊,再左邊。

所以*p++等價於*(p++),而不是(*p)++。

3、第**

+、-、*、/、%

這一級都是算術運算子,結合順序和數學學習中一致的,先乘除取餘數,後加減。

4、第四級

<<、>>

這是左移、右移運算子,位運算時可能需要用到。

5、第五級

<、<=、>、>=、!=、==

這些運算子也稱為關係運算子,其中<、<=、>、>=高於!=、==。

6、第六級

&、^、|

這三個符號也是位運算子號,其中內優先順序,&>^>|。

7、第七級

&&、||

邏輯與&&優先順序大於邏輯或||。

8、第八級

? :

也稱為條件運算子號,是c語言中唯一的一個三目運算子,結合順序是從右往左。

9、第九級

=、+=、-+、*=、/=、%=

這些運算子也叫做賦值運算子,除此之外,>>=、<<=、&=、^=、|=這些賦值運算子也在這一級別內,結合順序是從右往左。

10、最低階

,逗號運算子也稱為順序求值運算子,在c語言中,運算級別最低。

27樓:墨藍

a初值為12時,a+=a-=a*=a結果為0步驟:這個表

達式的運算是從右向左的:1. a*=a:

a=a*a=12*12=1442. a-=144: a=a-144=144-144=03.

a+=0: a=a+0=0+0=0。

28樓:衡陽落雁

賦值運算子的一種

等效於a=a-a

又例如a-=b

等效於a=a-b

29樓:濡穎o隨行

a-=a就是a=a-a的縮寫,同理a-=1就是a=a-1的縮寫,c語言中還支援a+=1就是a=a+1、a/=1就是a=a/1、a*=1就是a=a*1,不明白的請補充問題

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

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

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

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

c語言中alpha是什麼意思c語言中charalpha5的含義

1 c語言程式設計中baialpha通道是一個du8位的灰度通道,該通zhi 道用256級灰度來記錄dao影象中的透明 內度資訊,定義透明 不透明和半透容明區域,其中黑表示透明,白表示不透明,灰表示半透明。2 阿爾法通道 alpha channel 是指一張 的透明和半透明度。例如 一個使用16位儲...