這兩個在結構體雖然常用,但有時候很容易讓人用混淆了,程式編譯不通過。
1、一般情況下使用「.」,只需要宣告乙個結構體。這個一般用在結構體變數的使用。
格式是,結構體型別名+結構體名。
然後用結構體名加「.」加網域名稱就可以引用域 了,因為自動分配了結構體的記憶體。
2、用「->」,則要宣告乙個結構體的指標,還需要手動開闢乙個該結構體的記憶體空間,
然後把返回的指標給宣告的結構體指標,才能用「->」正確引用。
這個用在結構體指標變數。如果記憶體中只分配了指標的記憶體,沒有分配結構體的記憶體,
將會導致想要的結構體實際上是不存在。
這時候用「->」引用自然出錯了,因為沒有結構體,自然沒有結構體的域了。
3、此外,(*a).b 等價於 a->b。
4、總結
"."一般情況下讀作"的」。
「->」一般讀作"指向的結構體的"。
C語言中關於陣列和結構體
在c語言中使用陣列的時候要時刻注意陣列的範圍以及在程式執行過程中是否會出現陣列越界的情況,本篇說明根據在編寫pat乙級1004題目的 時所犯下的錯誤進行理解陣列。題中需要定義學號和姓名的陣列且學號和姓名不超過10個字元,我的錯誤定義陣列範圍為 char name 10 char course 10 ...
C語言中使用結構體
1 先定義結構體 struct stu char name 20 long number float score 4 再定義指向結構體型別變數的指標變數 struct stu p1,p2 或者 struct stu p1,p2 定義指標變數p 1 p 2,分別指向結構體型別變數。2 在定義型別的同時...
C語言中結構體
struct oursvoid main struct ours o2 01 結構體整體直接賦值的時候,即使字串也可以直接賦值 o1.str o2.str 錯誤,字串不能直接賦值 字串拷貝的方式 sprintf o1.str,02.str strcpy o1.str,o2.str 3.1 第一種情況...