1樓:匿名使用者
! 這個是 邏輯反,凡是a的值不為0的,!a 就等於0; 如果a的值為0,則 !a 的值為1
而~這個是 按位取反
比如 int a=2 ; 用二進位制表示為00 00 00 10;
則 !a = 0
而 ~a = 11 11 11 01 (按位取反後的二進位制結果,此結果為補碼形式)
求其原始碼為 : 10 00 00 11 即為 -3所以 ~a 的結果為 -3
2樓:灰紫太狼
c語言運算子級別分類 1級(左結合)
( ) 圓括號;[ ]下標運算子;->指向結構體成員運算子;. 結構體成員運算子。
2級(右結合)
「 ! 」邏輯非運算子;「 ~ 」按位取反運算子;「 ++ 」字首增量運算子;「 -- 」字首減量運算子;
「 - 」負號運算子;(型別)型別轉換運算子;「 * 」指標運算子;「 & 」地址運算子;
「sizeof 」 長度運算子。
3級(左結合)
「 * 」 乘法運算子;「 / 」 除法運算子;「 % 」 取餘運算子。
4級(左結合)
「 + 」加法運算子;「 - 」減法運算子。
5級(左結合)
<< 左移運算子;>> 右移運算子。
6級(左結合)
<、<=、>、>=關係運算子。
7級(左結合)
「 == 」等於運算子;「 != 」不等於運算子。
8級(左結合)
「 & 」按位與運算子。
9級(左結合)
「 ∧ 」按位異或運算子。
10級(左結合)
「 | 」按位或運算子。
11級(左結合)
「&&」邏輯與運算子。
12級(左結合)
「 || 」邏輯或運算子。
13級(右結合)
? :條件運算子。
14級(右結合)
=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算子。
15級(左結合)
「,」 逗號運算子。
3樓:和i白度
這是2個不同運算子
!表示 邏輯非 否定,
~表示按位取反 只用於二進位制運算裡 ,1變成0,0變成1.
4樓:
!表示 邏輯非 比如:你有個變數bool的,bistrue,你可以用if(!bistrue){}這麼用
~表示按位取反 只用於二進位制運算裡 ,1變成0,0變成1.
5樓:一貓糧
! 若真為假,若家為真
~ 按為取反
eg: int a=0;
if(!a)
結果:a=5
eg: char a=0x01;
char b=0x00;
b=~a;
結果:b=0xfe
6樓:匿名使用者
~是取反
!是取非
對於一位1或者0,當然是沒區別
對於多位的話,顯然就有區別了,你自己應該能明白了吧
7樓:匿名使用者
!是邏輯非,如!1=0,!0=1
~是按位取反,就是把數值化成二進位制位,再按照上面的!的方法對每一位進行運算,如~15=0
8樓:小草的追求
下面說的好詳細,,看譚浩強老師的吧,
c語言裡,i++與++i的區別,最好舉例說明
9樓:媯淑琴嚴鵑
i++是使用後再加1,如果i的初始值是0、輸出i++則為0
++i是使用前加1,如果i的初始值是0、輸出++i則為1
10樓:匿名使用者
前置的++,是變數先自增1,然後再作其他操作,後置的++,是先取變數當前的值操作,然後再自增1你的例子中,i的初始值是1,執行k = ++i;時,先執行了 i = i + 1,也就是i的值變為2,再把i的值賦給k,所以k的值是2,i的值也是2
執行z = i ++;時,先取i的值賦給z,此時i的值是2,所以z也是2,然後再執行i= i + 1,這條語句執行完成後,i的值變為3
11樓:潛素芹田培
i++:(++在後)在程式取用i時,i是原來的值,當該行指令執行完畢時i自動加1
++i:(++在前)在程式取用i時,i先自動加1後再執行該行指令..
12樓:匿名使用者
i++ 和 ++i的基本功能是相同的,都是對變數i進行自增1運算,從功能上講相當於i =i+1 ;
++運算子分為字首++和字尾++,如i++中的++就是字尾運算子,++i中的就是字首運算子,兩個的區別在於:
字首++,先使用變數,再進行變數自增1
字尾++,先進行變數自增1,再使用變數
現在分析你的**:
i=1;
k=++i; //先加,後用,i=i+1=2 k=i=2z=i++; //先用,後加,z=i=2, i=i+1=3輸出 22
13樓:曾德文溥夏
i++是先使用變數的值,後加1;
++i是先自加1,然後使用變數的值。
本例中:
str[j++]=str[i];
相當於:先賦值,後自加。
str[j]=str[i];
j++;
14樓:卿連枝戈雀
區別大啦
++i,i++,a
如果a=
++i;
等價於i=
i+1;a=
i;如果a
=i++;
等價於a=i;
i=i+
1;往往處理這些時,要與編譯器聯絡起來,多個++i相加想見與編譯器有關的
c語言中與的區別,c語言中「 」與「 」有什麼區別?
c語言中 與 的區別如下 是否為單行註釋 是用於多種語言的單行註釋語句。是註釋語句,不限制行數,在 和 之間的即為註釋。實用性的區別 是用於多種語言的單行註釋語句,適用方便快捷,但是實用性不如多行註釋 是註釋語句,不限制行數,在 和 之間的即為註釋,實用性大,但是符號鍵盤敲打麻煩。程式編譯時,不對註...
c語言中a與a有什麼區別,C語言中a與a的區別是什麼?詳細一點,謝謝!
這要看a是什麼了,如果a是指標變數,那麼a代表這個指標變數,a代表這個指標變數所指向的目標。如果不是指標那麼 a不是正確的寫法。c語言中a 與 a的區別是什麼?詳細一點,謝謝!a 是先返回a的值,再執行 運算。a 是先執行 運算,在返回a的值。例如 include int main a 7a 先使用...
C語言中pa與pa有什麼區別
p a 0 令p所指向地址的內容等於a 0 p是一個一級指標 p a 0 令p所指向地址的內容等於a 0 的地址,p是一個二級指標。c語言中 p a 0 與p a 0 有什麼區別?對於指標來說,p a 0 表示向地址為p的記憶體區域賦值為a 0 p a 0 把變數p的值改為a 0 這個語句正常應用中...