谭浩强的书中的一些知识点(1)
1.
struct Student stu; struct Student *p; p=&stu;
2.
strcmp函数
strcmp(st1,st2)
结果为0时,字符串st1与st2相等
3.
结构体数组
struct Student stu[3]={{10101,"Li Lin",'M',18},{10102,"Zhang Fang",'M',19},{10104,"Wang Min",'F',20}};
如何用指针访问结构体数组
struct Student *p; //定义指向struct Student结构体变量的指针变量
for (p=stu;p<stu+3;p++)
4.为结构体指针建一个链表
struct Student { int num; float score; struct Student *next; //next是指针变量,指向结构体变量 };
访问链表
p=head; //使p指向头结点 do { printf("%ld %5.1f\n",p->num,p->score); //输出p指向的结点的数据 p=p->next; //使p指向下一结点 }while(p!=NULL); //输出完c结点后p的值为NULL,循环终止
5.共用体与结构体
union共用体名
{ 成员表列
}变量表列;
“共用体”与“结构体”的定义形式相似。但它们的含义是不同的。
结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。
而共用体变量所占的内存长度等于最长的成员的长度。几个成员共用一个内存区。
union特点(不共存的特点就可以用这个实现。比如老师的职务与学生班级)
同一个内存段可以用来存放几种不同类型的成员,但在每一瞬时只能存放其中一个成员,而不是同时存放几个。
6.枚举
所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。
声明枚举类型用enum开头。花括号中的sun,mon,…,sat称为枚举元素或枚举常量。
enum Weekday{sun,mon,tue,wed,thu,fri,sat};
enum Color {red,yellow,blue,white,black}; //声明枚举类型enum Color for (i=red;i<=black;i++)
7.break
#include<stdio.h> int main(){ int i; for(i=0;i<=3;i++){ switch (i) { case 1: printf("1"); break; case 2: printf("2"); break; case 3: printf("3"); break; } } return 0; }
输出结果为:123
表明,break此时跳出的只是switch,而非整个for循环
int main(){ int i; for(i=0;i<=3;i++){ printf("%d",i); if(i==1){break;} } return 0; }
输出为:01
表明跳出了整个for循环