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...