C语言程序设计 细节总结(第9章 结构体共用体枚举)
第9章 結構體、共用體、枚舉
9.1 結構體
1.對于同類型結構體變量之間可以整體一次賦值
9.2 指向結構體的指針
9.2.1結構體變量的指針
1.定義格式:struct 結構體名 *結構體指針變量名
2.賦值格式:結構體指針變量名=&結構體變量
3.結構體成員引用:
(1)(*結構體指針變量).成員名
(2)結構體指針變量->成員名
例:
#include<stdio.h>
struct stu
{int num;char name[20];int score;
};
int main()
{struct stu s={1001,"zhang",99};struct stu *p;p=&s;printf("num\tname\tscore\n");printf("%d\t%s\t%d\n",s.num,s.name,s.score);printf("%d\t%s\t%d\n",(*p).num,(*p).name,(*p).score);printf("%d\t%s\t%d\n",p->num,p->name,p->score);return 0;
}
9.2.2 結構體數組的指針:與指向多維數組的指針類似
9.2.3 結構體(數組)作函數的參數、指向結構體的指針作函數參數
9.3 共用體(union)
1.共用體類型:為了節省內存空間,把不同用途的數據存放在同一存儲區域
2.共用體類型變量在內存中所占空間不是所有成員空間長度和,而是長度最大成員項的存儲空間
3.由于各成員共用一個存儲空間,所以第一次賦得值會被第二次覆蓋,覆蓋后歸0
4.定義:union 共用體名{成員列表};
5.初始化:union 共用體類型名 共用體變量名={初始值};
9.4 枚舉類型(enum)
1.枚舉類型定義:enum 枚舉名{枚舉值表};
2.枚舉變量定義:enum 枚舉類型名{枚舉值表}枚舉變量表列;
3.枚舉數組定義:enum 枚舉類型名 數組名[長度];
4.枚舉變量初始化:枚舉變量=枚舉元素;
例:
enum weekday{sun,mon,tue,wed,thu,fri,sat};
enum weekday a,b;
或
enum weekday{sun,mon,tue,wed,thu,fri,sat}a,b;
enum weekday enday[7];
a=mon;
b=(weekday)6;
5.枚舉數據的輸入輸出:不能對枚舉數據直接輸入輸出,但枚舉變量可作為整型變量處理。
(1)輸入:scanf(“%d”,&a);
(2)輸出:
1)直接輸出枚舉變量中存放的整型值,但不直觀:
a=mon;printf(“%d”,a);
2)利用多分支選擇語句輸出對應字符串:
Switch(a)
{
case sun:printf(“sun”);break;
case mon:printf(“mon”);break;
…
}
3)用二維字符數組存儲枚舉常量對應的字符串
enum flag{first,second} fg;
char *name[]={“first”,”second”};
fg=first;
printf(“%s”,name[fg]);
9.5 用typedef關鍵字定義類型
1.可以用typedef為已有類型名定義新的類型名,可以聲明數組、字符串類型
2.typedef與#define類似,#define是在預編譯s時處理的,只能做簡單替換,typedef是編譯時處理的
3.typedef有利于程序通用與移植
總結
以上是生活随笔為你收集整理的C语言程序设计 细节总结(第9章 结构体共用体枚举)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 昔开头的成语有哪些啊?
- 下一篇: 精子成活率低要做哪些检查