第五章:結構體
主要內容:
1.結構體型別的定義
2.結構體變數的引用
3.結構體變數的初始化
4.結構體陣列
5.指向結構體變數的指標
1.struct [結構體名]
;struct是關鍵字,不能省略。結構體型別與結構體變數概念不同
型別:不分配記憶體,不能賦值、訪問、運算;
變數;分配記憶體,可以賦值、訪問、運算;
結構體可以巢狀
例如:
struct date
;struct student
stu;
或者:
struct student
birthday;
}stu;
不過第二種方法會導致date結構體作用域只在結構體內部,在外面不能用
2.結構體變數不能整體賦初值,初始化的時候可以,
cin>>student1.num; student1.num=100;//正確
cin>>stuudent1;//錯誤
但是可以將結構體變數整體賦給另乙個結構體變數
student2=student1;
巢狀的結構體變數必須逐層引用。
student1.birthday.day=25;
結構體變數中的成員可以同一般變數一樣進行運算。
student1.birthday.day++; student1.score+=60;
3.初始化三種形式,與定義的三種形式對應
形式一:
struct 結構體名
;struct 結構體名 結構體變數=;
形式二:
struct 結構體名
結構體變數=;
形式三://不常用
struct
結構體變數=;
4.結構體陣列內各個元素在記憶體中連續存放。
5.乙個結構體變數的指標就是該變數所佔據的記憶體段的起始位址。
例如;(三種輸出型別等價)
int main( );
student stu, *p=&stu;
stu.num=10301; strcpy(stu.name,″wang fu″);
stu.***=『f』; stu.score=89.5;
cout name<<″ ″<< p-> ***<<″ ″<< p-> score《題目整理:
題1:設有3個候選人,最終只能有1人當選為領導。今有10個人參加投票,從鍵盤先後輸入這10個人所投的候選人的名字,要求最後輸出這3個候選人的得票結果。
#include #includeusing namespace std;
struct person
;int main( );
int i,j;
char leader_name[20];
for(i=0;i<10;i++)
for(i=0;i<3;i++);
bool comp(student x,student y)
int main()
stu[j].sum=b;
//cout《題3:
n只小白鼠(1#includeusing namespace std;
struct mouse
;bool comp(mouse x,mouse y)
int main()
sort(m,m+n,comp);
for(i=0;i
2.3兩題都用到了排序,我選擇了比較簡單的sort方法,上學期學習了氣泡排序和簡單選擇排序,這裡順帶複習一下(分別用兩種方法對10個數從小到大進行排序)
氣泡排序:
#include#includeusing namespace std;
int main()
}for(i=0;i<10;i++)
cout《簡單選擇排序:
#include#includeusing namespace std;
int main()
temp=a[i];a[i]=a[k];a[k]=temp;
}for(i=0;i<10;i++)
cout<
結構體與共用體的複習(2)
指向結構體變數的指標 乙個結構體變數的指標就是該變數所佔據的記憶體段的起始位址。可以設乙個指標變數,用來指向乙個結構體變數,此時該指標變數的值是結構體變數的起始位址。指標變數也可以用來指向結構體陣列中的元素。include include int main struct student stu 1 ...
結構體複習
1.編寫乙個函式print,輸出若干位學生的資料記錄,有5位學生,每一位學生的資料記錄包括學號 num 姓名 name 三門課的成績 g 3 要求用主函式輸入這些記錄,用print函式輸出這些記錄。請定義結構體程式設計實現。an highlighted block var foo bar inclu...
結構體複習總結
結構體 先簡單的介紹一下結構體 結構體是一種型別,是一些值的集合,這些值稱為成員變數。結構體的每個成員可以是不同型別的變數。1.結構體型別的建立 struct stua,p 這裡stu是結構體名稱,a是結構體變數,p是指向結構體的指標。在建立結構體時,結構體名稱不能省略,否則無法引用結構體。在定義結...