C 裡面什麼是 非零值 ,c 中非零值都表示真嗎?

2021-03-12 09:34:48 字數 1676 閱讀 1335

1樓:匿名使用者

在c++中,非零值就是一個變數的值,不是0,或者說,不等於0.

對非零值的判斷,常見的有兩種方法:

1 與0比較

如if(a != 0)

2 直接使用值進行判斷。

如if(a)

二者效果是相同的。

2樓:匿名使用者

這個問題我幾天前有

copy遇到,我印象中老點編譯器是可以 編過的

,當成a值為0。

然而我手上最老的是vs2005,試了,編不過,所以印象也許不準確。

根據c++標準,#if後面跟的必須是一個常量表示式。

1)如下的可以編過,且a被當成0, 這是因為微軟的msdn裡面,錯誤c1017的描述中有「in other cases, the preprocessor evaluates an undefined constant as zero. 」,即「未定義的常量被前處理器計算成0」, 所以a已經成為常量0了:

//#define a

#if a

...#endif

2) 上面的**去掉define行的註釋就變成你的情況了,這時候,a被定義了,不是一個未定義的,所以無法計算成0了,你只需要#define a 1就可以了, 這個1此處不能省掉。

3) 根據你的要求,你需要的是測試a到底定義沒,那麼推薦用"#ifdef a" "#ifndef a"這種。

4)如果堅持用#if,那麼defined(a) 可以通過識別 a是否被定義,而計算出一個常數1或者0

也就是:

#define a

#if defined(a)

...#endif

3樓:火之優雅

沒給出初值的話,在c++裡預設是0

4樓:

#if 改為 #ifdef

5樓:匿名使用者

#if a

修改為#ifdef a

這個時候是預編譯要用的,所以不能用#if

#if後面要用確定的值

6樓:袁重橋

#if是條件編譯開關。

#define a

你把a define成什麼了?

#if後面是要跟一個值,如果是真(也回

就是不等於零),則編答譯這一段,如果為假(就是等於零),則不編譯。

#include

#include

using namespace std;

int main()

c++中非零值都表示真嗎?

7樓:

對,哪怕是負的,正的,最大值,最小值⋯⋯都表示真

8樓:匿名使用者

這個看你怎麼定義吧。你要是把非零定義為假也可以

c語言裡if語句非零值是true那麼在前面加!就變成false了嗎,也就是變成0了?

9樓:雪豹出擊

c語言中抄沒有像c++中那樣的bool型別,bai在邏輯判斷中,c認為一個值du

如果是非zhi零就表示為真true,對這個值求邏輯非!,dao就是假false,比如說int a=5; if(a);就表示是真,if(!a)就是假,!a的值是零,a的值不變。

C語言中返回值為空和返回值為零分別是什麼意思

在c語言中,返回值是沒有強調說一定要有,但做為程式設計規範就要求一定要寫。返回值為空,就沒有返回值,也就沒有return語句。那麼格式如下 void main 返回值是0,即有返回值,就有return語句。格式如下 int main 在這裡的返回值看上去我們好像是用不到,但是系統在執行完程式後會對返...

pms032c是什麼裡面的顏色值啊

pms032c是潘通色卡里面的顏色值,pms是pantone match system的縮寫 032c是色號 c是指亮光面,即印出來是發亮能反光的。pms032c是pantone c u 色卡中的一個基本色 紅色。一般色卡會寫得有pantone這幾個字,印刷常用色彩之一,出版社稱為 專色 的其中一種...

C語言中的NULL零的是什麼,C語言中NULL是什麼意思

每個位元組在 復c語言裡都是一個char,字元制串是連續的bai序列的位元組來表示du的。按照這種 zhi定義,為了避dao 免在表示字串的時候是無休止地連續下去的位元組序列,需要用一個特殊的標記來表示字串的結束。而這個標記就是null.而作為人類可閱讀的字串,我們不需要這個null,所以在寫 類可...