c語言中的布林型別 列舉型別是個什麼概念

2023-01-02 19:56:05 字數 5937 閱讀 7966

1樓:匿名使用者

c語言中是沒有布林型別的,用數字0和1表示假與真;

列舉型別就是使用者自定義的具有有限值域的資料型別,如:

enum date;

這種型別的變數只能取上面花括號中列出的值。

c語言中,定義乙個布林型變數如何用,為什麼我用bool定義會報錯?

2樓:假面

c語言中並沒有bool型別變數。這是c++中新增的系統型別。

要在c語言中使用bool型別,可以使用自定義的方式。

1 使用整型做bool型別。

typedef int bool;

或typedef unsigned char bool;

只要是整型,都可以當做bool使用。

2 使用列舉型別做bool型別。

typedef enum

false,

true

}bool;

實際應用中,列舉型別較為普遍。

3樓:p王映棋

如果用c語言,是沒有布林型的,只有c++裡有

4樓:匿名使用者

在c語言標準(c89)沒有定義布林型別,所以c語言判斷真假時以0為假,非0為真。所以我們通常使用邏輯變數的做法:

//巨集定義布林型別

#define bool int

#define true 1

#define false 0

//定義乙個布林變數

bool flag = false;

5樓:匿名使用者

c語言中沒有bool變數,需要自己用列舉定義乙個bool變數:

enum bool ;

這樣的形式就行了。

或者可以更炫點,這麼幹:

#include

typedef enum bool bl;

void main()

其中true和false就是bool型變數。

6樓:

用新的編譯器 或者自己定義一下

7樓:匿名使用者

加上標頭檔案

include

c語言裡有沒有布林型這個資料型別?

8樓:小甜甜愛亮亮

3全部c語言中並沒有bool型別變數。這是c++中新增的系統型別。

要在c語言中使用bool型別,可以使用自定義的方式。

使用整型做bool型別。

typedef int bool;

或typedef unsigned char bool;

只要是整型,都可以當做bool使用。

使用列舉型別做bool型別。

typedef enum

bool;

實際應用中,列舉型別較為普遍。

c語音優缺點:

優點1、簡潔緊湊、靈活方便

c語言一共只有32個關鍵字,9種控制語句,程式書寫形式自由,區分大小寫。把高階語言的基本結構和語句與低階語言的實用性結合起來。c 語言可以像組合語言一樣對位、位元組和位址進行操作,而這三者是計算機最基本的工作單元。

2、運算子豐富

c語言的運算子包含的範圍很廣泛,共有34種運算子。c語言把括號、賦值、強制型別轉換等都作為運算子處理。從而使c語言的運算型別極其豐富,表示式型別多樣化。

靈活使用各種運算子可以實現在其它高階語言中難以實現的運算。

3、資料型別豐富

c語言的資料型別有:整型、實型、字元型、陣列型別、指標型別、結構體型別、共用體型別等。能用來實現各種複雜的資料結構的運算。並引入了指標概念,使程式效率更高。[13]

4、表達方式靈活實用

c語言提供多種運算子和表示式值的方法,對問題的表達可通過多種途徑獲得,其程式設計更主動、靈活。它語法限制不太嚴格,程式設計自由度大,如對整型量與字元型資料及邏輯型資料可以通用等。

5、允許直接訪問實體地址,對硬體進行操作

由於c語言允許直接訪問實體地址,可以直接對硬體進行操作,因此它既具有高階語言的功能,又具有低階語言的許多功能,能夠像組合語言一樣對位(bit)、位元組和位址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟體。

6、生成目標**質量高,程式執行效率高

c語言描述問題比組合語言迅速,工作量小、可讀性好,易於除錯、修改和移植,而**質量與組合語言相當。c語言一般只比匯程式設計序生成的目標**效率低10%~20%。

7、可移植性好

c語言在不同機器上的c編譯程式,86%的**是公共的,所以c語言的編譯程式便於移植。在乙個環境上用c語言編寫的程式,不改動或稍加改動,就可移植到另乙個完全不同的環境中執行。[14]

8、表達力強

c語言有豐富的資料結構和運算子。包含了各種資料結構,如整型、陣列型別、指標型別和聯合型別等,用來實現各種資料結構的運算。c語言的運算子有34種,範圍很寬,靈活使用各種運算子可以實現難度極大的運算。

c語言能直接訪問硬體的實體地址,能進行位(bit)操作。兼有高階語言和低階語言的許多優點。

它既可用來編寫系統軟體,又可用來開發應用軟體,已成為一種通用程式語言。

另外c語言具有強大的圖形功能,支援多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。

缺點1、 c語言的缺點主要表現在資料的封裝性上,這一點使得c在資料的安全性上有很大缺陷,這也是c和c++的一大區別。

2、 c語言的語法限制不太嚴格,對變數的型別約束不嚴格,影響程式的安全性,對陣列下標越界不作檢查等。從應用的角度,c語言比其他高階語言較難掌握。也就是說,對用c語言的人,要求對程式設計更熟練一些。

9樓:

ansi c99標準規定c語言中有布林型別(_bool)。

為了方便,使用布林型別可以加入標頭檔案stdbool.h,該檔案定義了bool=_bool,true=1,false=0。

使用布林型別必須保證所使用的編譯器支援c99標準

c語言中,enum代表什麼意思

10樓:戲雨南

宣告列舉型別 用enum開頭。

如 enum weekday

上面列舉的事一周有哪些天。

11樓:源語夢

列舉的意思:

如:enum weekday;

sum等整數,sun=0,mon=1..

這樣使得程式設計易懂,少出錯。

12樓:慢一點哦黎明

列舉型別,跟布林型別類似,布林型別就是true和false,列舉型別就是變數的值可以一一枚舉,可以自己定義,比如定義星期的列舉型別enum weekday;

13樓:匿名使用者

代表列舉型別

c語言中的布林值是個什麼東西?

14樓:

布林值就是真假兩個值,c中專門有保留字來描述,true和false

但是有時候表示式的結果不一定是真正的bool值,這時候c的規則是,0表示假,非0表示真,也就是1、-1、或者什麼亂七八糟的 2934都表示真。

4和6都是非0,所以他們與之後結果為真,c一般此時給乙個1來描述真,所以你看到1(如果你用int接受這個值得話)

c語言中有bool型別嗎?

15樓:寫在楓葉上的故事

c語言裡面是沒有bool(布林)型別的,c++裡面才有,c語言裡面用數值0表示假,非0整數表示真。在c++裡面可以使用bool型別。bool型別只有兩個值:

true =1 、false=0。

bool可用於定義函式型別為布林型,函式裡可以有 return true; return false 之類的語句。

布林型運算結果常用於條件語句:if (邏輯表示式)else;

擴充套件資料

boolean(布林)資料在c++中使用內建型別bool表示。bool型別的變數只可能有兩個值true或false,在現實世界中它用於表示「是」或「否」、「高」或「低」等這種只有兩個狀態的事物。例如用於表示檢測某年是否潤年的函式,其返回值型別顯示只有兩種情況「是」或「否」。

bool isleapyear( const unsigned int year)

沒有統一的布林型別在大型的工程項中特別是用到第三方程式庫時,可能使用不同的手段模擬布林型別以提交**的可讀性,這樣會使得**有些混亂。c++引入了bool內建型別,解決了**的一致性問題。

16樓:匿名使用者

我猜測你的疑問是:a的第乙個列印為啥是1,b的列印為啥不是1而是掃瞄值5?

我認為這是c編譯器的特點吧,可以這麼理解:

首先定義的時候bool乙個變數,如果直接賦值是非零,編譯器就自動轉轉為1了(這裡是預編譯階段)。所以一開始就是1而不是2。之後有a的2次列印。最後一句判斷a是0就不列印的。

然後說b,雖然定義了bool,但是掃瞄時候是按照int掃瞄的,記憶體中真的就是5了(並沒有讓編譯器自動轉換為1,因為是**執行階段了,不像預編譯階段那樣自動轉換)。

額外的,如果你給b減1的話,第一次減1結果b就變成1了(可以理解bool值變動時,如果發現大於1了,就減至1)。

以上都是習慣性的理解,沒有什麼特別的原理。就認為是編譯器的動作吧,公理!

17樓:風若遠去何人留

c語言本身沒有bool型別

c++中有這個型別

在c中 bool型別 一般用int取代

或者自定義列舉

比如typedef enum

bool;

18樓:輝其夫河

c99提供了_bool布林型別。是_bool而不是bool。

19樓:穰紫薩飛珍

c89標準是沒有的

c99標準新增了布林型別,使用時需要#include

c++的標準都是有布林型別的,而且和整數可以直接轉換(也是true轉為1,false轉為0)

20樓:

//其實來 c 語言中,並沒有 bool型別,//但是可以引用 "windows.h" 標頭檔案源//定義偽bool型別,

//false 就是百等於0

//true 就是1

#include

"stdio.h"

#include "windows.h"

int main()

21樓:匿名使用者

c中沒有,在c++中有。在c++中,bool型別變數只有兩個值,乙個是true,表示「真」,另乙個是false,表示「假」。

在c中,類似bool型別的使用非常普遍,對於if(exp),如果exp為零,則為「假」,非零則為「真」。事實上,在c++中,cout << ture;輸出就是1,cout << false;的輸出就是0。

22樓:匿名使用者

標準c 和 c++ 中是有 bool 這個關鍵字的 ,他的值是true/false ,這是基礎資料型別之一

bool byte short int float double long 這8個是基本資料型別

c++ 是從 c語言發展而來的

bool 型別 占用1個位元組 1byte 而 1 byte = 8bit 8位

這個概念你要弄清楚

shor 是2個位元組 int 是4個位元組

這都是基礎知識,多看看書就知道了,沒什麼難的。。

23樓:我是茶蛋殼

但可以自己造

typedef int bool

#define true 1

#define false 0

#define yes 1

#define no 0

把這個做成標頭檔案,要用時在包括進來就行了

c語言如果要定義函式的返回型別為布林型別,怎麼定義

需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言內編譯器,新建乙個容初始.cpp檔案,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 bool fun 3 編譯器執行test.cpp檔案,此時列印出了布林型別函式返回結果的列印結果。c語言裡面是沒來有bool 布林 型...

c語言中有string型別變數嗎

這裡的 string 有 二 義性。1 如果 string 是普通詞彙,c語言中有字元型別變數嗎 答,有。字元型別 用 char 宣告。char str this is a string 2 如果 string 是專用詞彙,c語言中有string型別變數嗎 答,沒有。string 是 類,是 cla...

c語言中return語句返回值的型別是不是預設的為整型?請做詳細解答

預設是int的。對bai於這個 func void 編譯du器會出zhi現如下警告 dao warning return type defaults to int wreturn type 說,你沒有指專定返回型別屬,預設為int。不是,返回值型別是你自己定義函式的時候設定的,比如定義了函式func...