您現在的位置是:首頁 > 垂釣
a---b是什麼意思?瞭解C語言“貪心法則”後,秒懂
- 由 阿迷創客 發表于 垂釣
- 2022-01-09
簡介貪心法則對於本題a---b如何拆解成合法符號的問題,C語言有一個簡單的規則,“貪心法則”:每一個符號應該包含儘可能多的字元
a||是什麼意思
卷首語
瞭解下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等程式語言。
做創客,愛程式設計。
喜歡的給個關注/轉發,需要的可以私信,送資料,每天都會抽空回覆。