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位儲...