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

2021-08-28 10:53:24 字數 387 閱讀 1556

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

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

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

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

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

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

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

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

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

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

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

C語言中 i 和 i 有什麼區別?

今天有同學問c語言中for迴圈裡那個 i 和 i 是否有區別,我告訴他在for迴圈中是沒有區別的,現在具體說一下 i 和 i 的區別。我們先用while語句寫一下 for i 1 i 10 i int i 0 while i 10 再用while語句寫一下 for i 1 i 10 i int i ...