999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺談C語言的常見陷阱

2024-01-18 09:09:46石也牧
科學(xué)與信息化 2024年1期
關(guān)鍵詞:定義

石也牧

華中師范大學(xué)人工智能教育學(xué)部 湖北 武漢 430079

引言

C語言是最重要的編程語言之一,它同時具備高級和低級語言的特點[1]。C語言的目標(biāo)程序效率高,它被廣泛應(yīng)用于多個領(lǐng)域:Linux內(nèi)核使用的是C語言、Python是用C語言寫的、《數(shù)據(jù)結(jié)構(gòu)》課程一般也使用C語言來描述,等等。C語言自身有很多陷阱,編程者一不小心就會“掉進(jìn)坑里”[2]。了解C語言常見的陷阱和規(guī)避方法,可以更深刻地理解相關(guān)的知識點,使較難的學(xué)習(xí)過程變得相對輕松。

1 不同類型數(shù)值的比較

下面這段程序,是兩個整數(shù)的比較,顯然x比y大,預(yù)期的打印結(jié)果為x〉y:

實際的運(yùn)行結(jié)果為x〈=y。x是無符號整型,y是普通整型,當(dāng)把它們比較時,系統(tǒng)先將類型轉(zhuǎn)換一致,y被轉(zhuǎn)換為無符號整型。增加一條打印語句printf(“%u ”,y),可知,-1轉(zhuǎn)換為無符號整數(shù)之后為4294967295,所以,結(jié)果為x〈=y。

不同類型的變量,取值范圍不同,要盡量避免兩個不同類型數(shù)值的比較。當(dāng)然,可采取類型的強(qiáng)制轉(zhuǎn)換,但也改變不了變量的原本取值范圍。

2 等號的誤用

直接判斷兩個浮點數(shù)是否相等合乎語法,但結(jié)果會出乎意料。例如:

打印結(jié)果為:b!=0.1。系統(tǒng)認(rèn)為b與0.1不相等,這是由浮點數(shù)的存儲方式導(dǎo)致的,計算機(jī)在存儲浮點數(shù)時是有誤差的。增加一條打印語句printf(“%.18f ”, b),得到結(jié)果是0.100000001490116120,看來b確實不是0.1。判斷兩個浮點數(shù)是否相等,應(yīng)該采用的方法是:判斷它們之差的絕對值是否小于某個預(yù)設(shè)的很小的正數(shù)。就是說,計算機(jī)上的兩個浮點數(shù)相等,是指在可接受的誤差范圍之內(nèi)相等。

3 宏定義——簡單的替換

在程序預(yù)處理階段,系統(tǒng)進(jìn)行宏替換,注意,只是簡單的字符串替換。宏定義不是普通的語句,結(jié)尾不需要加分號,如果加了可能會導(dǎo)致錯誤。例如:

#define MAX 10;

int a[MAX];

MAX被替換后,數(shù)組a變?yōu)閍[10;],這顯然是不對的。

宏比函數(shù)簡潔靈活,宏不是函數(shù)。例如,定義宏SUM,SUM與(a,b)之間有空格:

#define SUM (a,b) ((a)+(b))

引用SUM(1,2)不能得到1與2之和,因為SUM被替換為(a,b)((a)+(b)),而不是SUM(1,2)被替換為((1)+(2))。如果是函數(shù)定義,函數(shù)名后面有或者沒有空格,都不影響函數(shù)的功能。

4 字符串的 主站蜘蛛池模板: a毛片免费在线观看| 欧美第九页| 美女视频黄频a免费高清不卡| 在线中文字幕网| 午夜天堂视频| 4虎影视国产在线观看精品| 久久公开视频| 亚洲va在线观看| 国产SUV精品一区二区| 国产第一福利影院| 国内毛片视频| 中国美女**毛片录像在线| 极品国产一区二区三区| 亚洲精品波多野结衣| 国产日韩AV高潮在线| 国产精品欧美激情| 国产精品一区不卡| 中文字幕欧美成人免费| 国产超碰在线观看| 国产区免费精品视频| 超级碰免费视频91| 国产精品夜夜嗨视频免费视频| 亚洲欧美不卡中文字幕| 色婷婷视频在线| Jizz国产色系免费| 欧美日韩导航| 久久久无码人妻精品无码| 91破解版在线亚洲| 成人综合久久综合| 国产精品hd在线播放| 亚洲国产AV无码综合原创| 国产91丝袜在线播放动漫 | 666精品国产精品亚洲| 一级高清毛片免费a级高清毛片| 亚洲第一极品精品无码| 国产最新无码专区在线| 国产亚洲第一页| 午夜天堂视频| 亚洲Av综合日韩精品久久久| 国产成人久久综合777777麻豆| 99无码中文字幕视频| 国产一区亚洲一区| 国产一在线观看| 欧美性色综合网| 91黄色在线观看| 国产免费人成视频网| 久久6免费视频| 99热这里只有成人精品国产| 韩日免费小视频| jizz亚洲高清在线观看| 久久精品丝袜| 欧美日韩国产在线播放| 四虎国产在线观看| 手机精品视频在线观看免费| 亚洲国产欧洲精品路线久久| 国产成人一二三| 亚洲日本www| 欧洲日本亚洲中文字幕| 国产精品区网红主播在线观看| 精品少妇人妻av无码久久| 97青草最新免费精品视频| 中文字幕亚洲电影| 国产亚洲精| 精品一區二區久久久久久久網站| 国内精品久久久久久久久久影视| 五月综合色婷婷| 亚洲一区二区黄色| 亚洲香蕉在线| 在线观看国产一区二区三区99| 一级爆乳无码av| 19国产精品麻豆免费观看| 国产自产视频一区二区三区| 精品国产成人高清在线| 久久这里只有精品国产99| 深夜福利视频一区二区| 国产 日韩 欧美 第二页| 91av国产在线| 久久精品免费看一| 欧美激情视频二区| 黄色三级网站免费| 国产91丝袜| 国产在线观看精品|