C語言BOOL值與零值判斷的問題

時間 2021-10-17 05:01:00

1樓:匿名使用者

if (flag == true)

if (flag == 1 )

if (flag == false)

if (flag == 0)

flag == true 這個還要進行一次比較操作,if ( flag )就直接進行了判斷.

而且 有== 這個一般是和int型的作比較,比如 if(i==3)

如果是bool型的話,容易混淆.

所以比較統一的寫法是 :

if ( flag )

if ( !flag )

補充一下:

如果是指標型,就這樣比較

if(p==null)

if(p!=null)

整型if(i==3)

if(i!=3)

bool型

if(b)

if(!b)

就這個意思,

2樓:匿名使用者

c語言沒有bool型別變數

boolean型別是c++所獨有的,其別名有bool 和 bool,都可以定義布林變數。

由於使用bool型別可以使**更具有可讀性,很多程式設計者都在c中自己定義了類似的應用,一般方法有兩種:

一、採用巨集定義方式(windef.h中就是用的這種方式)typedef int bool ;

#define true 0

#define false 1

二、採用列舉型變數方式(這種方式使用起來,更象c++的boolean型別)

typedef enum bool;

接下來就可以象c++一樣,方便的使用bool型別了。

3樓:匿名使用者

你可以看一下 有關程式設計規範的書。推薦華為的。

這些都不是錯誤,只是**的一些規範書寫。這樣可增加**的可讀性與擴充套件性。其實,有些規範有點不人性,不過誰叫別人是權威呢。

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

4樓:雪豹出擊

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

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

c語言程式中,float x與“零值”比較的if語句是(if==0)

5樓:假面

浮點數等值比較使用下式:

#include

#include

fabs(a - b) < flt_epsilon三個epsilon:

flt_epsilon

dbl_epsilon

ldbl_epsilon

6樓:天雲一號

float式單精度浮點型,計算機是有精度限制的,所以0.0000...0001=0(超過一定的精度限制),所以有時候就會得到錯誤的結果。

一般對於float和double型別的比較,可以寫為

if(x<1e-6) // 小於一個較小的數,即可認為等於0

7樓:匿名使用者

0是int 型,x是float 型 int 得往float 轉,但0不是一個變數,你可以==0.0試試

bool函式的返回值true false 預設0和1?,還是需要定義true false為0或1?

8樓:匿名使用者

true、false通常抄都是整數值

有1位元組bai或2位元組或4位元組等等

false取值du0,true取值 1或者-1(補碼)zhi不同dao的語言、或者不同的編譯器會有所不同實際上boolean型別是預定義的列舉型別不必考慮true、false取什麼值

這是高階語言的抽象特性

9樓:匿名使用者

就是false。false隱式提升到int得到的是0。

10樓:匿名使用者

無需定義

是自動變換的

你什麼語言

vba中是0和-1

11樓:匿名使用者

預設為0和1,1就是true,0就是false。

c語言中if語句的值是不是隻有為0才是判斷不成立

12樓:

#include

int main(void)

怎麼說呢 if裡面的值如果是0的話就是不成立!也就意味著if所關聯的其它語句不會執行, 注意哦這裡的0是指一定數量bit位的記憶體物理狀態哦。  那麼這麼一說我相信if中的其它常量量null,'\0')應該不難理解為什麼都不成立了吧 就是 0 null \0 這幾個常量對應的記憶體中的bit位都是0狀態哦。

當然瞭如果其中有一個bit位的狀態是1的話就成立了。例如if(-1),if(1==1)其中的1==1屬於關係運算了 最後的1==1還是會變成1

以上簡單來說就是編碼知識,常量在記憶體中的物理狀態,以及if執行與否的判斷根據。

簡單來記就是非0即真

if(3)  和if(1)if(-6)都是一個效果。

謝謝!^_^

13樓:

有0和非0兩種情況 但是一般會用1 你說的情況都是一樣的

14樓:

對頭!0不成立(否),只要非0都成立(是)。

C語言求1 3 5 799 101的值

肯定是0了,因為如果滿足 if i 2 0 j 2 0 這個迴圈要求的話,肯定也滿足 if i 2 0 j 2 0 這個迴圈了,一個加i,一個減i,就互相抵銷了為什麼說滿足if i 2 0 j 2 0 條件的肯定也滿足if i 2 0 j 2 0 條件呢,因為你在滿足if i 2 0 j 2 0 條...

c語言程式設計計算1 3 5 7 9 11 的值

呼嘯長風 include stdafx.h include void main printf d n sum 因為1 3 5 等 等差,所以計算 n 2 時,n 2 n n 1 n 2 下次迴圈,求 n 4 時也是如此,這樣,就不用每次都從1到n疊乘了 德昂當 include stdio.h def...

c語言求sin(x)近似值的問題

include include int main s s a c b t fabs s s0 這裡應該計算的是兩次計算的差,而不應該呼叫sin x 因為你的程式是為了計算sin x 的近似值 s0 s 記錄上次的計算結果 k while t u printf lf s return 0 你要觀察兩個...