1. 程式人生 > >結構體、結構體變數以及指向結構體變數的指標筆記

結構體、結構體變數以及指向結構體變數的指標筆記

結構體:描述結構的組織形式,不分配記憶體 結構體變數定義:先定義結構體型別,再定義結構體變數 結構體變數的定義主要有3種形式 結構體型別與結構體變數概念的區別: (1)型別:不分配記憶體 變數:分配記憶體 (2)型別:不能賦值、存取、運算 變數:可以進行賦值、存取、運算 (3)結構體可以巢狀 (4)結構體成員名與程式中變數名相同,不會混淆 結構體變數的引用: (1)不能對結構體變數整體賦值或輸出,只能分別對各個成員進行引用。例如:cin>>student1;student1.num=100是正確的;cin>.student1.num;是錯誤的 可以將一個結構體變數整體賦給另外一個相同型別的結構體變數。例如:student2=student1; (2)巢狀的結構體變數必須逐層引用。例如:student.birthday.day=25; (3)結構體變數中的成員可以同一般變數一樣運算。例如:student1.birthday.day++;student1.score+=60; 結構體變數的引用規則: (1)引用方式:結構體變數名.成員名(“.”是成員(分量)運算子,優先順序:1,結合性:從左到右) (2)可以將一個結構體變數賦值給另一個結構體變數 (3)結構體巢狀時逐級引用 結構體變數的初始化有3種類型 結構體變數的使用: (1)同類型的結構體變數之間可以相互直接賦值。 (2)結構體變數不能直接進行輸入輸出,它的每一個成員能否直接進行輸入輸出,取決於其成員型別,弱視基本型別或是字元陣列,則可以直接輸入輸出。 (3)結構體變數可以作為函式的引數,函式也可以返回結構體的值。 結構體陣列的定義有2種類型,結構體陣列的初始化也有2種類型 指標與記憶體動態分配:通過使用new和delete單目運算子來實現動態變數的分配與撤銷 (1)動態申請記憶體操作符new 使用格式: new <型別名> //動態變數 new <型別名> (<初值>) //動態變數 new <型別名>[<元素個數>] //動態陣列 功能:生成一個(或一批)所給型別的無名動態變數 (2)釋放記憶體操作符delete 使用格式: delete<指標> delete [ ] <指標> 功能:釋放通過new生成的動態變數(或動態陣列),但指標變數仍存在。