" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言的各類變量和零值的比較詳解

 更新時間:2021年11月26日 16:31:33   作者:愛學代碼的學生  
這篇文章主要為大家介紹了C語言的各類變量和零值的比較,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1.波爾變量和零值比較

在C語言中本來是不存在bool類型的,但在C99標準中加入了bool類型。

在C99標準中引入了_Bool類型,在vs中將bool類型進行了宏定義,而_Bool類型使微軟自己設計的一種類型,在別的編譯器上不具有可移植性,故這里我們使用bool類型。

接下來我們進入我們的正題:

假設布爾變量名稱為flag,那它與零值的比較在if語句中表示如下:

if(flag)? ? ? ? ? //表示flag為真

if(!flag)? ? ? ?//表示flag為假??

在C++標準中,布爾類型常量和整數、指針之間的轉換規(guī)則為:

false->0 true->1

0->false true->非0值

但對于不同的實現對ture的表示也可以不同,所以我們要避免一下操作:

?
int flag = 1;
if(flag==ture){
   ;
}
 
?

因此以后在進行bool類型與零比較時,我們避免使用判斷形式。

2.整形變量和零進行比較

假設整形變量為ret,它與零值進行比較的if語句可以表示為:

if(ret==0)? ?

if(ret!=0)

不可以寫成bool的類型風格

if(ret)? ?//會讓人錯以為ret使bool類型

if(!ret)??

3.浮點變量和零值比較

這里也是我們今天所講述的重點。

這里我們先來看一段代碼:

在我們的看來,x和y不應該一樣嗎?為什么這里卻有如此大的差別?

這里涉及到了浮點數的存數和缺失。

讓我們在看一段代碼:

?

在數學上我們認為這兩個數使不相等的,但在32位計算器上認為這兩個數是相等的。

所以我們如果兩個同符號的浮點數的差的絕對值在一個范圍內我們就認為這兩個數使相等的,否則激素不相等的。所以我們應該怎樣去實現呢?

代碼如下:

我們引入了<math.h>和<float.h>兩個頭文件來實現我們的需求,這里我們引入了FLT_EPSILON?這個精度范圍來比較兩個float類型的數,除了這個精度范圍還有DBL_EPSILON精度范圍用來比較double類型,這里我們就不舉例了。

4.指針和零值比較

指針變量的空為NULL,即不指向任何對象,盡管NULL和0值相同,但表達意義卻不同。

假設指針變量為p,它與零值比較的if語句實現為:

if(p==NULL)? ? ? ? //p與NULL比較,來顯示p使指針變量

if(p!=NULL)

?盡量避免寫成如下形式

if(p)? ? ?//容易誤解成bool類型變量

if(!p)

或者這種

if(p==0)? ?//容易誤解成整形類型變量

if(p!=0)

這四類比較希望大家有所收獲。

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • C++開發(fā)的Redis數據導入工具優(yōu)化

    C++開發(fā)的Redis數據導入工具優(yōu)化

    這篇文章主要介紹了C++開發(fā)的Redis數據導入工具優(yōu)化方法的相關資料,需要的朋友可以參考下
    2015-07-07
  • C/C++宏替換實現詳解

    C/C++宏替換實現詳解

    這篇文章主要介紹了C/C++宏替換實現詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 淺談C++中thread庫join和detach的區(qū)別

    淺談C++中thread庫join和detach的區(qū)別

    這篇文章主要為大家介紹了C++中thread庫join和detach的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • FFmpeg實現變速播放的兩種方法總結

    FFmpeg實現變速播放的兩種方法總結

    這篇文章主要為大家詳細介紹了FFmpeg中實現變速播放的兩種方法,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的可以了解一下
    2023-07-07
  • VS2019+Opencv4.0+Win10配置詳解

    VS2019+Opencv4.0+Win10配置詳解

    這篇文章主要介紹了VS2019+Opencv4.0+Win10配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • C++對cin輸入字符的判斷及分段函數處理方法示例

    C++對cin輸入字符的判斷及分段函數處理方法示例

    這篇文章主要介紹了C++對cin輸入字符的判斷及分段函數處理方法,結合實例形式分析了C++輸入判斷及處理相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • C++構造函數一些常見的坑

    C++構造函數一些常見的坑

    這篇文章主要給大家分享的是C++構造函數一些常見的坑,文章圍繞C++構造函數的相關資料展開關于C++構造函數坑的內容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-01-01
  • C++位運算符詳解(異或運算符和移位運算符)

    C++位運算符詳解(異或運算符和移位運算符)

    下面小編就為大家?guī)硪黄狢++位運算符詳解(異或運算符和移位運算符)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • 一篇文章帶你了解C++面向對象編程--繼承

    一篇文章帶你了解C++面向對象編程--繼承

    這篇文章主要介紹了解析C++面對象編程--繼承的運用,是C++入門學習中的基礎知識,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-08-08
  • C++實現小型復數計算器

    C++實現小型復數計算器

    這篇文章主要為大家詳細介紹了C++實現小型復數計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評論