當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > C語(yǔ)言編程
[導(dǎo)讀]初學(xué)者階段編程時(shí),編寫基本語(yǔ)句可能會(huì)有隱含錯(cuò)誤的方式,基本語(yǔ)句主要針對(duì)if、for、while、goto、switch等,它們看似簡(jiǎn)單,但使用時(shí)隱患比較多,本文歸納了使用語(yǔ)句的一些規(guī)則和建議?;菊Z(yǔ)句編程舉例if語(yǔ)句if語(yǔ)句是C/C語(yǔ)言中最簡(jiǎn)單、最常用的語(yǔ)句,然而很多編程人員用隱...

初學(xué)者階段編程時(shí),編寫基本語(yǔ)句可能會(huì)有隱含錯(cuò)誤的方式,基本語(yǔ)句主要針對(duì)if、for、while、goto、switch等,它們看似簡(jiǎn)單,但使用時(shí)隱患比較多,本文歸納了使用語(yǔ)句的一些規(guī)則和建議。

基本語(yǔ)句編程舉例

  • if語(yǔ)句

if語(yǔ)句是C /C語(yǔ)言中最簡(jiǎn)單、最常用的語(yǔ)句,然而很多編程人員用隱含錯(cuò)誤的方式寫if語(yǔ)句,本文以“與零值比較”為例,進(jìn)行討論。

(1)布爾變量與零值比較:不可將布爾變量直接與TRUE、FALSE或者1、0比較。根據(jù)布爾類型的語(yǔ)義,零值為“假”(記為FALSE),任何非零值都是“真”(記為TRUE)。TRUE的值究竟是什么并沒有統(tǒng)一的標(biāo)準(zhǔn),

例如VC 將TRUE定義為1,而VB則將TRUE定義為-1。

假設(shè)布爾變量名為flag,它與零值比較的標(biāo)準(zhǔn)if語(yǔ)句如下

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

其他的用法都屬于不良風(fēng)格,例如:

if(flag == TRUE)
if(flag == FALSE)
if(flag == 1 )
if(flag == 0 )

(2)整型變量與零值比較:應(yīng)當(dāng)將整型變量用“==”或“!=”直接與0比較。假設(shè)整型變量的名字為value,它與零值比較的標(biāo)準(zhǔn)if語(yǔ)句如下:

if(value == 0)
if(value != 0)

不可以模仿布爾變量的風(fēng)格而寫成:

if(value)
if(!value) //會(huì)讓人誤解value是布爾變量

(3)浮點(diǎn)變量與零值比較:不可以將浮點(diǎn)變量用“==”或“!=”與任何數(shù)字比較。

千萬(wàn)留意,無(wú)論是float還是double類型的變量,都有精度限制,所以一定要避免將浮點(diǎn)變量用“==”或“!=”與數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成“>=”或“<=”形式。假設(shè)浮點(diǎn)變量的名字為x,應(yīng)該將

if(x == 0.0) //隱含錯(cuò)誤的比較

轉(zhuǎn)化為

if((x >= -EPSINON)
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

現(xiàn)在網(wǎng)上有很多播放量巨高的免費(fèi)編程項(xiàng)目教程,很多學(xué)編程的同學(xué)可能都看過(guò),就導(dǎo)致大家可能寫在簡(jiǎn)歷上的內(nèi)容都差不多。

關(guān)鍵字: 項(xiàng)目 編程 簡(jiǎn)歷

最近看到APP上,給我推送了很多類似的回答,借此機(jī)會(huì),也想著重新審視一下自己的學(xué)習(xí)歷程,以及結(jié)合自身和大牛,分享一些學(xué)習(xí)經(jīng)驗(yàn),希望對(duì)大家有所啟發(fā)和幫助。

關(guān)鍵字: APP 嵌入式 C語(yǔ)言

SQLite是一個(gè)跨平臺(tái)的輕量級(jí)數(shù)據(jù)庫(kù),支持C/C++開發(fā),可用于嵌入式中,關(guān)于C/C++使用SQLite的簡(jiǎn)單實(shí)例,可參考這篇:“玩轉(zhuǎn)SQLite6:使用C語(yǔ)言來(lái)讀寫數(shù)據(jù)庫(kù)”,本篇來(lái)繼續(xù)介紹SQLite的基礎(chǔ)運(yùn)算符與表...

關(guān)鍵字: SQLite C語(yǔ)言 數(shù)據(jù)庫(kù)

北京2022年9月29日 /美通社/ -- 近日,猿編程創(chuàng)始人李翊接受了《中國(guó)信息技術(shù)教育》雜志專訪。《中國(guó)信息技術(shù)教育》雜志由教育部主管、中央電化教育館等單位主辦,刊登專訪文章《人工智能教育普惠重在與校園實(shí)際結(jié)合 --...

關(guān)鍵字: 人工智能 創(chuàng)始人 編程 智能教育

為增進(jìn)大家對(duì)PLC的認(rèn)識(shí),本文將對(duì)PLC編程的技巧予以介紹。

關(guān)鍵字: PLC 指數(shù) 編程

一直以來(lái),機(jī)器人都是大家的關(guān)注焦點(diǎn)之一。因此針對(duì)大家的興趣點(diǎn)所在,小編將為大家?guī)?lái)納米機(jī)器人的相關(guān)介紹,詳細(xì)內(nèi)容請(qǐng)看下文。

關(guān)鍵字: 納米機(jī)器人 機(jī)器人 編程

在計(jì)算機(jī)科學(xué)中,內(nèi)存泄漏指由于疏忽或錯(cuò)誤造成程序未能釋放已經(jīng)不再使用的內(nèi)存。

關(guān)鍵字: C語(yǔ)言 內(nèi)存泄漏

C語(yǔ)言使用函數(shù)調(diào)用,我們?cè)偈煜げ贿^(guò)了,但是函數(shù)調(diào)用在內(nèi)存中究竟發(fā)生了什么真的清楚嗎?只有搞清楚內(nèi)存里的內(nèi)幕,才算完全搞懂函數(shù)的調(diào)用。

關(guān)鍵字: C語(yǔ)言 函數(shù)調(diào)用

有個(gè)粉絲關(guān)于條件編譯的問(wèn)題,程序一直編譯報(bào)錯(cuò)。我整理了關(guān)鍵的部分,下面代碼是頭文件中的定義。

關(guān)鍵字: 條件編譯 C語(yǔ)言

首先要看英文和C語(yǔ)言的關(guān)系,有多大層度是需要英文的支持。我們都知道C語(yǔ)言中一共有32個(gè)關(guān)鍵詞,控制語(yǔ)句僅有9種,也就是說(shuō)只需要掌握以上內(nèi)容就可以對(duì)C語(yǔ)言進(jìn)行應(yīng)用,對(duì)于一些復(fù)雜的指針等更合英文沒有關(guān)系。我相信短短的32個(gè)關(guān)...

關(guān)鍵字: C語(yǔ)言

C語(yǔ)言編程

178 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉