C程序设计谭浩强版总结笔记
結構體
注:結構體類型的名字是由一個關鍵字struct和結構體名組合而成的(例如struct Student)。結構體名是由用戶指定的,又稱“結構體標記”,以區別于其他結構體類型。上面的結構體聲明中Student就是結構體名(結構體標記)
說明
 struct 結構體名
 {成員列表}
 類型名 成員名;
 “成員列表”也稱為“域表”
注:
student1 = student2
聲明和定義結構體類型變量
1. 聲明和定義分開
聲明結構體類型
 sturct Student student1,student2;
 定義結構體
2. 聲明和定義同時進行
struct Student {int num;char name[20];char sex;int age;float score; }student1,student2;注:該定義方法的一般形式為
struct 結構體名 {成員列表 }變量名列表;3. 不指定類型名而直接定義
struct {成員表列 }變量名表列;說明:
- 只能對結構體變量賦值而不能對結構體類型賦值。在編譯時,結構體類是不分配空間的,只對變量分配空間。
- 結構體類型中的成員可以與程序中的變量名相同,但二者不代表同一對象。例如,程序中可以另定義一個變量num,它與struct Student中的num是兩回事,相互不干擾。
結構體變量的初始化和引用
【例9.1】把一個學生的信息(包括學號、姓名、性別)放到同一個結構體變量中,并輸出這個學生的信息
#include<stdio.h> int main() {struct Student{int num;char name[20];char sex;int age;// float score;}a={10101,"Li Lin",'M'};printf("學號:%d,姓名:%d,性別:%d。\n",a.num,a.name,a.sex,a.age);return 0; }定義結構體數組
{成員列表} 數組名【數組長度】;struct Person {char name[20];int count; }leader[3];
定義結構體數組
 【例9.3】有三個候選人,每個選民只能投票選一人,要求編一個統計選票的程序,先輸入被選人的名字,最后輸出各人得票結果。
指向結構體變量的指針
struct Student *pt【例9.5】通過指向結構體變量的指針變量輸出結構體變量中的成員信息
#include<stdio.h> #include<string.h> int main() {struct Student{long num;char name[20];char sex;float score;};struct Student stu_1;return 0; }注:以下三種等價
指向結構體的指針
【例9.6】有3個學生的信息,放在結構體數組中,要求輸出全部學生的信息
#include<stdio.h> struct Student {int num;char name[20];char sex;int age; }; struct Student stu[3]={{10101,"Li",'M',18}, {10102,"zhangfang",'M',19},{10104,"wangmin",'F',20}}; int main() {struct Student *p;printf("No. Name sex age\n");for(p=stu;p<stu+3;p++>){printf("%5d %-20s %2c %4d\n",p->num,p->name,p->sex,p->age);}return 0; }注:
(++p)->num //先使p自加1,然后得到p指向的元素中num成員值(即10102)
(p++)->num//先求得p->num的值(即10101),然后再使得p自加1,指向stu[]
用結構體變量和結構體變量的指針做函數參數
struct Student {int num;char name[20];float score[3];float aver; }1. 結構體變量做函數參數
void input(struct Student stu);2. 結構體變量的指針/數組做函數參數
void input(struct Student stu[]);指針處理鏈表
注:C程序設計 譚浩強版此處有9.4節“用指針處理鏈表”本人將其歸類到了第八章指針中
 
共用體
格式:
 union 共用體名
 {成員表列}變量表列;
 例如
注:結構體變量所占內存長度是各成員占的內存長度之和。每個成員分別占有其自己的內存單元。而共用體變量所占的內存長度等于最長成員的長度。
引用共用體變量
a.i a.ch a.f特點
注:共用體類型一般用在兩個組數據的成員大部分相同的情況之下。例如,有學生和老師兩組數據,學生的成員包括:姓名、號碼、性別、職業、班級。教師的成員包括:姓名、號碼、性別、職業、職務。這兩組數據只有班級和職務不同,因此可以定義成如下的共用體:
枚舉類型
注:枚舉類型放在了第3章“順序程序設計”
typedef聲明新類型名
注:typedef聲明新類型名放在了第3章“順序程序設計”
總結
以上是生活随笔為你收集整理的C程序设计谭浩强版总结笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Twitter数据采集案例
- 下一篇: 全球卫星导航系统(GNSS)频率表(20
