當前位置:首頁 >教程首頁 > IT 學院 > WEB前端+全棧工程師班 >C語言中不一樣的語法結構,你知道幾個?

C語言中不一樣的語法結構,你知道幾個?

發布時間:2019-08-21 08:49:46

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

1.jpg

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 配對使用,然而在我們寫代碼時,還是會經常出錯,例如如下代碼:

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

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答
  • 廣州視頻剪輯培訓機構有哪些

    在廣州這座繁華的都市中,數字創意產業正蓬勃發展,廣州視頻剪輯培訓成為許多影視愛好者的理想起點。隨著短視頻平台和影視製作需求的激......

  • 北京UI設計培訓免費試聽攻略

    在北京這樣一座充滿創意活力的都市,UI設計培訓正成為無數年輕人追逐職業夢想的跳板。隨著數字經濟的蓬勃發展,UI設計行業在北京展......

  • 北京平麵設計培訓機構排名榜

    在當今創意經濟蓬勃發展的浪潮中,北京平麵設計培訓成為眾多職業追求者的理想起點。這座城市的活力與機遇吸引著無數人投身視覺藝術領域......

  • 北京虛幻引擎課程內容全解析

    在影視和設計行業蓬勃發展的今天,虛幻引擎作為核心技術工具,正引領著視覺創作的革命。越來越多的人渴望掌握這門技能,而專業的培訓成......

  • 北京平麵設計課程如何選擇適合的

    在北京這座文化創意中心,平麵設計培訓行業蓬勃發展,為渴望入行的學員提供了豐富機遇。隨著數字媒體和影視產業的崛起,掌握視覺傳達技......

  • 上海3D建模短訓班課程內容解析

    在上海這座充滿活力的城市,影視和設計行業正迎來前所未有的發展機遇,數字技術的進步讓3D建模成為創意產業的核心驅動力。參加專業的......

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定