最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中bool變量的深入理解

 更新時間:2021年08月26日 12:45:54   作者:精致的灰(>_<)  
C語言中沒有BOOL類型變量,它是C++獨有的,由于使用BOOL類型可以使代碼更具有可讀性,下面這篇文章主要給大家介紹了關(guān)于C語言中bool變量的相關(guān)資料,需要的朋友可以參考下

前言

在一些高級語言當中,為了能夠完成更好的邏輯判斷,因此就有了bool類型,bool類型的變量值只有true和false兩種。

而在C語言中,一般認為0為假,非0為真。

這是因為c99之前,c90是沒有bool類型的的。但是c99引入了_Bool類型(_Bool就是一個類型,不過在新增頭文件stdbool.h中,被重新用宏寫成了 bool,為了保證C/C++兼容性)。

目前為止大部分C語言書籍采用的標準還是c90標準,因此我們很少用bool類型。

bool類型變量的大小

可以看到,這里的bool類型的大小和我們平時的真或假的大小是不一樣的。

下面是bool類型的源碼:

可見,stdbool.h中定義了4個宏,bool、true、false、__bool_true_false_are_defined。 其中bool就是 _Bool類型,true和false的值為1和0,__bool_true_false_are_defined的值為1。
注意這里的bool類型和char類型雖然都是1字節(jié),但是它們是不同的:char 中存儲字符,全局變量初始值為'\0',bool 中存0或1,全局變量默認初始化為0。

C語言中的邏輯表達式的返回結(jié)果,比如 a==b的返回結(jié)果,只有0和1兩種可能,但是它們的大小確是4,也就是用整形表示真假:

另外,在VS2013中,微軟還給我們設(shè)計了大寫的BOOL類型,這個類型在VS2019中就被刪除了,BOOL類型將int進行了重命名,因此它的大小是4個字節(jié)。不推薦這種類型,因為這是微軟的標準,如果換到其他編譯環(huán)境則無法使用。

bool 值與0比較

對于if條件的表達式,一般有以下三種寫法:

#include <stdio.h> 
int main()
{
	int pass = 0; //0表示假,C90,我們習(xí)慣用int表示bool 
	if (pass == 0)
	{ 
		//理論上可行,但此時的pass是應(yīng)該被當做bool看待的,
		//這里與整形數(shù)字0比較,這種表示方法在語義上并不直觀,不推薦 
	}
	if (pass == false)
	{ 
		//不推薦,因為只能在C99中使用
	}
	if (pass)
	{ 
		//推薦 

	}
	return 0;
}

之所以推薦使用第三種,因為if語句在開始使用時先要進行條件判定,而判定的正是括號()中表達式或函數(shù)的邏輯結(jié)果,這個邏輯結(jié)果只有真或假。

在這里pass并沒有進行任何條件判定,所以pass本身就是邏輯結(jié)果,這樣就能反應(yīng)出來flag是真或者假,這里pass的值是0表示假,如果想要其表示真只需要加邏輯反!即可:!pass

如果要采用bool類型:

#include <stdio.h> 
#include <stdbool.h>
int main()
{
    bool pass = false; //C99
	if (pass != 1)
	{ 
		//與整形數(shù)字0比較,這種表示方法在語義上并不直觀,不推薦 
		//另外,非0為真,但是非0有多個,這里也不一定是完全正確的
	}
	if (pass != true)
	{ 
		//不推薦,這樣寫雖然沒有問題,但是并不直觀
	}
	if (!pass)
	{ 
		//推薦,pass本身表示假,取反表示真

	}
	return 0;
}

結(jié)論:bool類型,直接判定,不用操作符進行和特定值的比較。

c語言中bool如何輸出

c中的bool型就是0和1,因此可以用%d輸出,因此。。。代碼如下:

#include <stdio.h>

void main()
{
bool b = true;
printf("%d\n",b);

bool c = false;
printf("%d\n",c);
}


總結(jié)

到此這篇關(guān)于C語言中bool變量的文章就介紹到這了,更多相關(guān)C語言bool變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 探討C++中不能聲明為虛函數(shù)的有哪些函數(shù)

    探討C++中不能聲明為虛函數(shù)的有哪些函數(shù)

    下面小編就為大家?guī)硪黄接慍++中不能聲明為虛函數(shù)的有哪些函數(shù)。希望對大家有所幫助。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2017-01-01
  • C語言內(nèi)存函數(shù) memcpy,memmove ,memcmp

    C語言內(nèi)存函數(shù) memcpy,memmove ,memcmp

    這篇文章主要介紹了C語言內(nèi)存函數(shù) memcpy,memmove ,memcmp,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • C++右值引用與move和forward函數(shù)的使用詳解

    C++右值引用與move和forward函數(shù)的使用詳解

    為了支持移動操作,新標準引入了一種新的引用類型——右值引用(rvalue reference)。所謂右值引用就是必須綁定到右值的引用,這篇文章主要介紹了C++右值引用與move和forward的使用
    2022-08-08
  • 利用C語言實現(xiàn)http服務(wù)器(Linux)

    利用C語言實現(xiàn)http服務(wù)器(Linux)

    本文將利用C語言實現(xiàn)一個輕量級的http服務(wù)器,使用Reactor模式,即主線程只負責(zé)監(jiān)聽文件描述符上是否有事件發(fā)生,有的話立即將該事件通知工作線程,感興趣的可以了解一下
    2022-07-07
  • 仿現(xiàn)代C++智能指針實現(xiàn)引用計數(shù)

    仿現(xiàn)代C++智能指針實現(xiàn)引用計數(shù)

    這篇文章主要為大家詳細介紹了如何仿現(xiàn)代C++智能指針實現(xiàn)引用計數(shù),文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以了解下
    2024-03-03
  • 詳解C++中的左值,純右值和將亡值

    詳解C++中的左值,純右值和將亡值

    C++中本身是存在左值,右值的概念,但是在C11中又出現(xiàn)了左值,純右值,將亡值得概念;這里我們主要介紹這些值的概念,感興趣的可以了解一下
    2022-09-09
  • C++進程間共享數(shù)據(jù)實例

    C++進程間共享數(shù)據(jù)實例

    這篇文章主要介紹了C++進程間共享數(shù)據(jù)的方法,是進行C++應(yīng)用程序開發(fā)中非常實用的技巧,需要的朋友可以參考下
    2014-10-10
  • C++ 中使用不同平臺的時間函數(shù)及對比分析

    C++ 中使用不同平臺的時間函數(shù)及對比分析

    在C++ 編程中,時間函數(shù)的選擇對于性能測量、任務(wù)調(diào)度和時間戳記錄至關(guān)重要,本文將介紹在 C++ 中常用的時間函數(shù),并比較它們在不同平臺上的應(yīng)用和效果,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • C++中auto_ptr智能指針的用法詳解

    C++中auto_ptr智能指針的用法詳解

    這篇文章主要介紹了C++中auto_ptr智能指針的用法詳解的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • OpenCV實現(xiàn)最小外接正矩形

    OpenCV實現(xiàn)最小外接正矩形

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)最小外接正矩形,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07

最新評論

崇明县| 乐平市| 舒城县| 晋中市| 淮北市| 牡丹江市| 道真| 方城县| 金沙县| 鄂州市| 沈丘县| 新安县| 平潭县| 洞口县| 阿拉善右旗| 大同市| 望江县| 天全县| 霍林郭勒市| 将乐县| 高陵县| 奉贤区| 攀枝花市| 宁强县| 大新县| 东平县| 清远市| 鹰潭市| 栖霞市| 陕西省| 兰州市| 舒城县| 兴仁县| 萨嘎县| 黑山县| 泽州县| 菏泽市| 临夏市| 佛山市| 广河县| 泰兴市|