您現在的位置是:首頁 > 垂釣

a---b是什麼意思?瞭解C語言“貪心法則”後,秒懂

  • 由 阿迷創客 發表于 垂釣
  • 2022-01-09
簡介貪心法則對於本題a---b如何拆解成合法符號的問題,C語言有一個簡單的規則,“貪心法則”:每一個符號應該包含儘可能多的字元

a||是什麼意思

卷首語

瞭解下C語言編譯,詞法分析中的“貪心法則”,有助於避免許多不必要的書寫錯誤。

a---b是什麼意思?瞭解C語言“貪心法則”後,秒懂

貪心法則

對於本題

a---b

如何拆解成合法符號的問題,C語言有一個簡單的規則,“貪心法則”:

每一個符號應該包含儘可能多的字元。

也就是說,編譯器將原始碼,從左到右,一個字元一個字元地讀入,如果加入下一個字元依舊可以構成一個合法符號,則包含該字元,直到不可以為止。

a---b是什麼意思?瞭解C語言“貪心法則”後,秒懂

- 和 —— 都是合法運算子,但 ——- 不是

例題分析

(1)

a---b

的意思是什麼?

首先,a是一個合法符號,a-不是,所以第1個符號是a

其次,-是一個合法符號,——也是一個合法符號,但——-不是,所以第2個符號是——

然後,-是一個合法符號,-b不是一個合法符號,所以第2個符號是-

最後,只剩下一個字元b,它是一個合法的符號

所以,a——-b,依據貪心法則,得出的結果是:a —— - b ,也就是 (a——) - b

(備註:合法的符號,如變數名,只能有大小寫字母、數字和_下劃線組成,並且不能是數字開頭這裡的a和b都是變數名。)

(2)

y = x/*p

是什麼意思呢?

如(1)的分析步驟,前2個符號依次是y , =,本題重點,在x/*p上,依舊貪心法則:

首先,

x

是一個合法符號,

x/

則不是;

其次,

/

是一個合法符號,

/*

也是一個合法符號,但

/*p

不是一個合法符號,所以第2個符號是

/*

, 看到

/*

後,編譯器將把它後續字元均當做是註釋扔掉,直到看到

*/

為止。-_-||

此題的本意是

y = x / (*p)

,但因為忽略了規則,此書寫錯誤或直接導致編譯錯誤。

卷尾語

歡迎糾錯,討論。

關注@阿迷創客,普及計算機知識,講解C/彙編/C++/JAVA/Phyton等程式語言。

做創客,愛程式設計。

喜歡的給個關注/轉發,需要的可以私信,送資料,每天都會抽空回覆。

Top