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,所以在寫 類可...