91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言的使用陷阱有哪些

發布時間:2021-11-22 15:18:38 來源:億速云 閱讀:135 作者:iii 欄目:編程語言

這篇文章主要講解了“C語言的使用陷阱有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C語言的使用陷阱有哪些”吧!

1. 正確理解函數聲明

你是否見過這樣的代碼“(*(void(*)())0)();”,你能知道這是上面意思嗎?

看不懂不用擔心,下面我們來分析一下:任何C變量的聲明都由兩部分組成:類型以及一組類似表達式的聲明符(declarator)。聲明符從表面上看魚表發揮有些類似,對他就只應該返回一個聲明給定的結果。(void  (*)()0)是將常數0 轉型為“指向返回值為void  的函數的指針”類型。而(*(void(*)())0)();就可以看成是一個函數調用,末尾的分號使得表達式成為一個語句。當然我們也可以使用typedef來世表達式更加清晰:

typedef void (*funcptr)(); (*(funcptr)0)();

2. 運算符的優先級問題

在  C語言中,運算符優先級有15個之多,如果不知道運算符的優先級我們在處理問題,分析代碼時,就非常被動,那么我們可以對運算符進行簡單的分組,了解各組運算符之間的相對優先級,那么記起來就相對簡單了,可以簡單的記做:!>  算術運算符 > 關系運算符>&&>|| > 賦值運算符。

3. 語句結束符的分號問題

C語言以分號“;”,作為語句結束的標志,那么如果在表達式后多寫了分號,會出現什么結果呢?這個分號也許會被視作一個不會產生任何實際效果的空語句,或者編譯器會因為這個多余的分號產生一條警告信息,可以根據警告信息去掉這個分號。但一個例外就是在if  或者while語句之后多寫一個分號,此時原來在if或者while之后的語句即使一條單獨的語句,魚條件判斷沒有了任何關系。請看一下代碼:

If(x > y)return; If(x > y);return;

這兩句完全是不一樣的。

4. Switch 語句問題

C語言中的switch,在case分支后都需要添加一個break;語句,不然會已知順著語句執行下去,達不到我們需要的效果。

5. 函數調用

與其他程序設計語言不同,C語言要求:在函數調用時及時函數不帶參數,也應該包含參數列表,因此,如果f  是一個函數,f();一個函數調用,而f;卻是一個什么也不做的語句。

6. else 懸掛問題

我們經常聽到說else要和if 配對使用,然而在我們寫代碼時,還是會經常出錯,例如如下代碼:

C語言的使用陷阱有哪些

這段代碼的本意是分為兩種情況,x 等于0 不等于0,然而上面的代碼表達的意思卻截然不同。即 想不等于0,程序不做處理,x  等于0時,判斷y的值,做出不同的處理。

感謝各位的閱讀,以上就是“C語言的使用陷阱有哪些”的內容了,經過本文的學習后,相信大家對C語言的使用陷阱有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贡嘎县| 河源市| 若羌县| 綦江县| 会同县| 冷水江市| 阿拉善右旗| 镶黄旗| 鄂尔多斯市| 依兰县| 太保市| 宁国市| 怀集县| 佛学| 泗洪县| 都匀市| 定结县| 尉犁县| 台湾省| 阿尔山市| 龙泉市| 吉首市| 诸城市| 佛冈县| 绥宁县| 平顶山市| 长顺县| 灵宝市| 乌海市| 博野县| 兴义市| 商水县| 昭苏县| 商城县| 黔西| 伊川县| 留坝县| 大同市| 遵义市| 伊宁县| 大洼县|