如何理解C語言中的識別符號?

時間 2021-06-03 00:29:48

1樓:Milo Yip

識別符號 - cppreference.com識別符號能指代下列型別的實體:

物件函式

標籤( struct 、 union 或列舉)結構體或聯合體成員

列舉常量

typedef 名

標號名巨集名

巨集形參名

就是程式設計師可以命名一些東西,不要想得太複雜。

2樓:chenc

讀書是為了獲取知識,獲取知識是為了指導實踐。指導實踐的方式方法並不是唯一的。

一本書就算靠譜,它可能也只是眾多方法之中的乙個,更別提它可能還未必完全靠譜。

針對c語言來說,識別符號、左值、表示式、變數什麼的你應該有自己的理解,而不是完全相信某一本書上的理解。

比如這書的這一段內容仔細推敲的話就會有問題。

「也不是左值(它不指定記憶體位置上的內容)。」

這段話隱含的意思是說左值必須放在記憶體中,其實不一定,也有可能放在暫存器中。

識別符號就是給某個東西起的名字,然後在需要用到這個東西的時候就可以用識別符號來代替,這個不需要仔細看書應該就知道了的,甚至於我們可能不需要知道這個叫識別符號也可以學會、學好c語言。

文中「特定記憶體位置的值」指表示式*(ranks+2*entity),這個表示式實際上就是rank的第7個元素,rank是記憶體中一段內容,知道了rank的位址和型別,就可以知道它的第7個元素在什麼位置,值是什麼。

讀書可以適度的「不求甚解」,一方面防止自己讀很好的書,很難的書的時候錯誤理解了書中的內容,卻自以為是,以為掌握了正解;另一方面防止讀不好的書,有問題的書的時候受了書的錯誤影響,誤入歧途。

如何理解C語言中的 p和 p 和 p

諾坎普奇蹟 name為陣列指標 陣列本身就是一種特殊的指標 而P為位址的位址,因為指標可以進行移位運算,所以可以直接運算 確實等同於p name i 第二個a為陣列頭指標的位址,a則為儲存陣列頭指標位址的位址,p為陣列a 4 的位址,故可以賦值p a 冒泡 file 1 name的型別是char 3...

c語言中復合運算子的存在意義是什麼?

zr scat 有些復合運算可能翻譯成一條機器指令,比如n 1可以直接翻譯為帶桶型移位器的賦值。語義上定義二元運算或者三元運算並不需要過多解讀,就跟數學上定義各種算符的涵義類似,理解並合理使用即可。 單純是因為c誕生之初的組合語言有類似 之類的指令罷了 對於現在稍微做點最起碼優化的編譯器,a a b...

C語言中不使用選擇結構和條件運算子有哪些方法可以判斷兩個整數的大小?

AKAX leetcode經典,不用比較符和條件語句比較兩個整數大小的演算法。再進一步,不呼叫系統函式,不新建變數,不型別轉換。首發leetcode,次發知乎,後發qq。無long無unsig無轉換無新建變數無呼叫函式適用任意位cpu通用演算法。c c class Solution 涇渭漳淮 int...