C語言 「 」與「 」有什麼區別?

2021-10-25 01:55:38 字數 387 閱讀 2570

這雖然是個小問題,但有時候很容易讓人迷惑,因為有的時候用混淆了,程式編譯不通過。

下面說說我對它們的理解。

一般情況下用「.」,只需要宣告乙個結構體。格式是,結構體型別名+結構體名。然後用結構體名加「.」加網域名稱就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a;一樣。

而用「->」,則要宣告乙個結構體的指標,還要手動開闢乙個該結構體的記憶體,然後把返回的指標給宣告的結構體指標,才能用「->」正確引用。否則記憶體中只分配了指標的記憶體,沒有分配結構體的記憶體,導致想要的結構體實際上是不存在。這時候用「->」引用自然出錯了,因為沒有結構體,自然沒有結構體的域了。

此外,(*a).b 等價於 a->b。

"."一般情況下讀作"的」。

「->」一般讀作"指向的結構體的"。

C語言中「 」與「 」有什麼區別?

這雖然是個小問題,但有時候很容易讓人迷惑,因為有的時候用混淆了,程式編譯不通過。下面說說我對它們的理解。一般情況下用 只需要宣告乙個結構體。格式是,結構體型別名 結構體名。然後用結構體名加 加網域名稱就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a 一樣。而用 則要宣告乙個結構體的指...

C語言中「 」與「 」有什麼區別?

這雖然是個小問題,但有時候很容易讓人迷惑,因為有的時候用混淆了,程式編譯不通過。下面說說我對它們的理解。一般情況下用 只需要宣告乙個結構體。格式是,結構體型別名 結構體名。然後用結構體名加 加網域名稱就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a 一樣。而用 則要宣告乙個結構體的指...

與 有什麼區別

一 簡要說明 按位與 a b是把a 和b都轉換成二進位制數然後再進行與的運算 邏輯與 a b 就是當且僅當兩個運算元均為 true 時,其結果才為 true 只要有乙個為零,a b 就為零。例如 a b 9 8 1001 1000 結果是1000 a b 9 8 結果是1 對每乙個都判斷 只要前面是...