1樓:八哥說科技
!(--x)在c語言中的意思是:對變數x先進行自減,再對變數x的值取邏輯非,如果x為0,表示式為真,非0表示式為假。
" !0" 這個邏輯表示式的值為1(判斷的這個數為0,成立,則其表示式的值為1)," !1" 這個邏輯表示式的值為0(判斷的這個數非0,不成立,則其表示式的值為0)。
「--」是自減運算子,含義是對變數先減1後取值。
在計算機裡面進行的是二進位制運算,邏輯判斷的結果只有二個值,稱這二個值為「邏輯值」,用數的符號表示就是「1」和「0」。其中「1」表示該邏輯運算的結果是「成立」的,如果一個邏輯運算式的結果為「0」,那麼這個邏輯運算式表達的內容「不成立「。
2樓:彭聽然
while(x)意思是說x非零情況下繼續執行,那while(!x)就是說x是0的情況下繼續執行,--x是說在用x參與運算前做x=x-1的操作。把上面的組合一下就是while(!
(--x)),懂了嗎?
3樓:匿名使用者
這個是c語言中唯一的三目運算子。
string1 ?a : b
意思是說:當string語句判斷是真的時候,該語句使用結果a,否則是用結果b。
4樓:匿名使用者
(!x++||y--)
這個邏輯大概就是
x等於0或者y不等於0最後表示式結果為1
++和--是後做的
還有如果x為0,y就不--了
5樓:匿名使用者
這個是一個條件語句的簡寫
就相對於:
if aa
belse
c如果aa為真,則執行b,否則執行c
6樓:超絕至精
1、c語言中=!是兩個運算子擺放在一起,「=」是賦值運算子,「!」邏輯非運算子;
2、邏輯操作符一般將其運算元視為條件表示式,返回結果為bool型別;
3、首先對其運算元求值,若結果為0,則條件為假(false),否則為真(true);
4、優先順序上「!」先於「=」;所有比如有下面的式子,int i;i=!5;
5、這個理解為:根據運算子優先順序,!先於=;首先5作為!的運算元,求值!5的結果是bool型的false。
6、然後false隱士轉換成int型,即0;所以i裡面的值是整形0。
擴充套件資料:
c語言運算
1、c語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程式設計語言。
2、在表示式方面較其它程式語言更為簡潔,如自加、自減、逗號運算和三目運算使表示式更為簡單;
3、但初學者往往會覺的這種表示式難讀,關鍵原因就是對運算子和運算順序理解不透不全
特有特點
1、c語言是一個有結構化程式設計、具有變數作用域(variable scope)以及遞迴功能的過程式語言。
2、c語言傳遞引數均是以值傳遞(pass by value),另外也可以傳遞指標(a pointer passed by value)。
3、不同的變數型別可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變數、函式命名有更多彈性。
5、部份的變數型別可以轉換,例如整型和字元型變數。
6、通過指標(pointer),c語言可以容易的對儲存器進行低階控制。
7、預編譯處理(preprocessor)讓c語言的編譯更具有彈性。
7樓:單曲13區
| 是位或運算,
例如:9|5可寫算式如下:
00001001
|00000101
00001101 (十進位制為13)可見9|5=13\ 相當於連線符號,表示下一行是上一行的繼續
8樓:
~是位運算子,在二進位制中是按位取反的意思,也就是0變成1,1變成0.
例如:二進位制數:a = 1010 1111那麼, ~a = 0101 0000所以: b = ~a 就表示:0101 0000 了。
9樓:匿名使用者
一樓回答的是正解,它和+=、-=的用法類似。
其實:a=10;
b=3;
a%=b;//等價於a=a%b其實現在a就是1
10樓:匿名使用者
c語言中什麼意思 1.模運算,即求餘數。表示式 a % b 就是計算 a 除以 b 得出的餘數。例如: 4 % 3 的結果是 1 2.轉義符,比如在scanf()和
11樓:匿名使用者
是關係運算子. 表示:判斷是否相等的。
如:if(a==b) /*判斷a與b是否相等,如相等則為真*/
12樓:匿名使用者
這是兩個運算子擺放在一起而已
「=」是賦值運算子
「!」邏輯非運算子,邏輯操作符一般將其運算元視為條件表示式,返回結果為bool型別:首先對其運算元求值,若結果為0,則條件為假(false),否則為真(true)
優先順序上「!」先於「=」
所有比如有下面的式子
int i;
i=!5;
這個要怎麼理解呢?
1.根據運算子優先順序,!先於=
2.首先5作為!的運算元,求值!5的結果是bool型的false3.然後false隱士轉換成int型,即04.所以i裡面的值是整形0
13樓:
int x=3,y=6,z;
z=x^y<<2;
這個答案應該是27,《為左移運算子,優先順序比^高,所以y左移兩位相等於4,再和x做異或運算得27.
y<<2==11000
x=00011
異或==11011化成十進位制便等於27
c語言中,!(--x)什麼意思? 30
14樓:浮生梔
c語言運算子,括號裡面(---x)表示x的值減去1,相當於「x」變為「x-1」,括號外面「!」表示取反(非0數變為0,0變為1)。
除了常見的三大類,算術運算子、關係運算子與邏輯運算子之外,還有一些用於完成特殊任務的運算子,比如位運算子。
擴充套件資料
優先順序,c語言中,運算子的運算優先順序共分為15 級。1 級最高,15 級最低。 在表示式中,優先順序較高的先於優先順序較低的進行運算。
而在一個運算量兩側的運算子 優先順序相同時,則按運算子的結合性所規定的結合方向處理。
結合性:c語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。
如有表示式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合 方向就稱為「左結合性」。
而自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算子是賦值運算子。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。
c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。所有的優先順序中,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。其它的都是從左至右結合。
具有最高優先順序的其實並不算是真正的運算子,它們算是一類特殊的操作。()是與函式相關,與陣列相關,而->及.是取結構成員。
其次是單目運算子,所有的單目運算子具有相同的優先順序,因此在我認為的 真正的運算子中它們具有最高的優先順序,又由於它們都是從右至左結合的,因此*p++與*(p++)等效是毫無疑問的。
另外在c語言裡,沒有前置後置之分,因為++ -- 是右結合所以右側優先運算,表現為 "運算元後置優先順序比較高" 的假象,前置和後置的區分是因為運算子過載而後加入c++的
接下來是算術運算子,*、/、%的優先順序當然比+、-高了。
15樓:該使用者未註冊
在c語言
中,~x代表的意思是按位取反的意思。
將x按位取反
比如x = 10101010b。
那麼~x = 01010101b。
還要注意,在c語言中,還有邏輯取反符號「!」,「!x」的返回值只有0和1兩種。如果x為0,則!x=1。如果x不等於0.則!x的返回值為0。
擴充套件資料:c語言關鍵字。
signed 宣告有符號型別變數
unsigned 宣告無符號型別變數
struct 宣告結構體變數
union 宣告聯合型別
enum 宣告列舉型別
switch 用於開關語句
case 開關語句分支
default 開關語句中的「其他」分支auto 宣告自動變數,預設時編譯器預設為此const 宣告只讀變數
static 宣告靜態變數
register 宣告暫存器變數
16樓:回看電視的豬
!(--x)的值是邏輯值,如果執行到這句之前x==1,則此式值為true,否則值為false。然後執行此語句之後x變為x-1。
參照c99規定,非零整數作為邏輯值時為true,整數零作為邏輯值為false。
和!(x-1)不一樣,應該和!(x-1);x--;一樣。
17樓:匿名使用者
(!x++||y--)
這個邏輯大概就是
x等於0或者y不等於0最後表示式結果為1
++和--是後做的
還有如果x為0,y就不--了
18樓:匿名使用者
這個是c語言中唯一的三目運算子。
string1 ?a : b
意思是說:當string語句判斷是真的時候,該語句使用結果a,否則是用結果b。
19樓:匿名使用者
int x = 2;
int y;
y = !(--x);//使用x前先自減1y = !(1);//非真為假
y = 0;
20樓:潛伏的藍色幽默
在(--x)語句執行之前,x自減1
就是說int x=2,y;
y=1-(--x);//之後y=0,x=1
21樓:匿名使用者
這個是一個條件語句的簡寫
就相對於:
if aa
belse
c如果aa為真,則執行b,否則執行c
22樓:匿名使用者
例如 x=2;
首先 --x得到了1.然後 !1就是非1,就變成0嘞
23樓:匿名使用者
x的值先減1,再進行取反。如果非零則式子為0,0則非零
24樓:匿名使用者
等同於:
--x;
然後對x取反;(0取反為1, 非0取反為1)
25樓:空對空導彈
3這裡不是數字3,表示真,同非0的值都一樣。||表示或,就是符號前後兩種情況任意一種成立,結構就是成立的。所以3‖b=1
26樓:匿名使用者
或的意思。
3‖b表示3為真或者b為真。3>0,所以一定為真,所以就不用計算b是否為真了。
(3‖b)的值就是真(非0),即1
27樓:磨夜人
首先對!的理解是:
c語言裡面沒有bool(布林)型別
c++裡面才引入bool型別
c語言裡面用數值0表示假,非0整數表示真,1.所以當(--x)為正或負時都為真,而加上!號就是取反為假(0);
2.當(--x)為0時為假,加上!號取反為真(1);
--x就是x減1的意思,詳細的得看「操作符過載」如果要了解--x和x--的區別再自己去發帖或學習吧,學紮實點不是壞處
2.當(--x)等於0時,為假,加上!號取反為真(1);
而--x是
在C語言中是什麼意思,C語言中 c 是什麼意思?
勢如雲 這是c語言的邏輯運算子 異或 這個 講的非常詳細,我摘抄了一些,詳細的你看以看看。有很例子,好懂!邏輯運算子把各個運算的變數 或常量 連線起來組成一個邏輯表示式。邏輯運算子有4個,它們分別是 邏輯非 邏輯或 邏輯與 異或 在位運算裡面還有 位與 位或 的運算。什麼是邏輯運算 邏輯運算用來判斷...
c語言中extern是什麼意思,在C語言中標頭檔案的extern是什麼意思呢?
extern 宣告的函式是在外部定義的函式例項,最常見的就是通過extern定義在win32 dll定義的非託管函式。 取經人取經 就是全域性變數的意思,在建立工程的情況下,其他檔案也可以呼叫這個變數。 陳振龍 用了extern,就表示這個變數是全域性的和動態的,不存在使用哪一個的問題.比如3號檔案...
label在c語言中是什麼意思,在C語言中loop是什麼意思?
四舍 入 標籤的意思,一般用在goto語句中。比如 lable 001就是一個標籤 void main int a 0 int b printf hello lable 001 printf hello,lable 001 n a if a 5 goto lable 001 printf hello...