成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C語言中的“六大陷阱”,你可能已經知道了兩個

開發 后端
要理解一個C 程序,僅僅理解組成該程序的符號是不夠的,我們還需要理解這些符號是如何組成聲明、表達式、語句和程序的。今天我們就來討論一下不一樣的語法結構。

前戲

要理解一個C 程序,僅僅理解組成該程序的符號是不夠的,我們還需要理解這些符號是如何組成聲明、表達式、語句和程序的。今天我們就來討論一下不一樣的語法結構。

1. 正確理解函數聲明

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

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

  1. typedef void (*funcptr)(); 
  2. (*(funcptr)0)(); 

2. 運算符的優先級問題

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

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

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

  1. If(x > y)return; 
  2. If(x > y);return; 

這兩句完全是不一樣的。

4. Switch 語句問題

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

5. 函數調用

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

6. else 懸掛問題

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

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

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2020-10-10 17:34:11

大數據IT技術

2018-06-06 00:06:48

開源存儲存儲軟件存儲

2010-10-26 10:16:36

求職

2022-11-02 11:02:52

數據中心數據中心架構

2025-04-02 00:00:04

2014-12-08 10:39:15

2022-06-20 07:44:22

truncatedeletedrop

2024-08-07 15:44:04

2025-03-27 00:25:55

微服務架構技術

2018-04-27 14:40:18

Java語言程序

2020-11-11 14:23:35

網絡安全數據泄露網絡攻擊

2011-07-14 10:23:33

C語言

2016-05-18 11:47:35

Apache大數據項目開源

2020-07-02 15:43:26

Kubernetes容器工作負載

2020-02-17 09:42:09

編程語言JavaWindows

2017-12-14 14:38:56

物聯網網絡技術機器學習

2019-06-05 15:20:00

MongoDBNoSQL數據庫

2023-07-27 08:40:45

PawSQL數據庫

2024-05-11 12:47:16

Kafka場景.高性能

2011-05-26 17:01:17

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区二区三区四区在线观看 | 国产精品资源在线 | gav成人免费播放视频 | 毛片黄片 | 欧美在线视频网站 | 国产成人99久久亚洲综合精品 | 黄在线免费观看 | 日韩成人免费在线视频 | 欧美freesex黑人又粗又大 | 欧美精品一区二区三区四区五区 | 欧美三级在线 | 九九久久国产精品 | 99精品99| 精品丝袜在线 | 极品久久 | 国产精品久久久久久久久久久新郎 | 成年人黄色一级毛片 | 久久国产欧美日韩精品 | 四季久久免费一区二区三区四区 | 91免费在线视频 | 成人三级电影 | 午夜精品久久久久久不卡欧美一级 | 国产精品乱码一二三区的特点 | 国产日韩欧美一区二区 | 亚洲一区三区在线观看 | www.黄色在线观看 | 免费能直接在线观看黄的视频 | 毛片在线免费 | 天堂一区二区三区 | av网站在线免费观看 | 狠狠的干狠狠的操 | 国产精品久久国产精品 | 一区二区三区国产视频 | 国产91在线 | 欧美 | 五月综合激情网 | 成人小视频在线观看 | 亚洲免费网 | 久久av一区二区三区 | 男人天堂网址 | 免费观看一区二区三区毛片 | 国产成人精品免高潮在线观看 |