在一个组合项中包含若干个类型不同(或相同)的数据项。
形式:
struct 结构体类型名
{成员表};
每一个成员也称为结构体中的一个域(field),成员表又称为域表。
定义方法:
(1)先声明结构体类型再定义变量
struct Student{ ..... }; Student student1,student2;
(2)在声明类型的同时定义变量
struct Student{ ..... }student1,student2;
初始化:
(1)在定义时指定初始值
struct Student{ ..... }student1={...};
(2)声明类型和定义变量分开
struct Student{ ..... }; Student student1={...};引用结构体变量
形式
结构体变量名.成员名
“.”是成员运算符,优先级最高
每一个数组元素都是一个结构体类型的数据
指向结构体变量的指针一个结构体变量的指针就是该变量所占据的内存段的起始地址
1、通过指向结构体变量的指针引用结构体变量中的成员
Student stu; Student *p=&stu; 结构体变量名.成员名 = (*p).成员名 = p->成员名
2、用结构体变量和指向结构体变量的指针构成链表 (链表详见6.3)
链表中的每一个元素称为“结点”,每个结点都包括两个部分:用户需要的实际数据,下一个结点的地址。
最后一个元素不再指向其他元素,它的地址部分放一个“NULL”
(1)用结构体变量名做参数
(2)用指向结构体变量的指针作实参,将结构体变量的地址传给形参
(3)用结构体变量的引用作函数形参,它就成为实参的别名
new和delete是运算符,不是函数,因此执行率高。
new 类型 [初值]
new int;//存放整数的空间,返回一个指向该存储空间的地址(指针) new int(100);//存放整数的空间,指定该整数初值为100,返回一个指向该存储空间的地址(指针) new char[10];//存放字符数组(包括10个元素)的空间,返回首元素地址 new int[5][4];//存放二维数组的空间,返回首元素地址 用new分配数组时不能指定初值 float *p = new float(3.14);//将返回的该空间的地址赋给指针变量p
delete 指针变量(对变量)
delete [ ] 指针变量(对数组)
完整例子
int main(){ Student *p; p = new Student; p->name = "wang"; p->num = 10123; cout<name< num< 6.3 链表与链表的基本 *** 作 链表中的每一个元素称为“结点”,每个结点都包括两个部分:用户需要的实际数据,下一个结点的地址。
最后一个元素不再指向其他元素,它的地址部分放一个“NULL”静态链表:所有结点都是在程序中定义的,不是临时开辟的,也不能用完后释放。各结点既可以通过上一个结点的next访问,也可以直接通过结构体变量名a,b,c访问。
动态链表:各结点是可以随时插入和删除的,这些结点并没有变量名,只能先找到上一个结点,才能找到下一个结点。只有提供头指针head的地址,才能访问整个列表。包括静态链表的建立 动态链表的建立、插入、删除等 详见《C++程序设计题解与上机指导(第3版)》P1096.4 枚举类型一个变量只能有几种可能的值。
形式:
enum 枚举类型名{枚举常量表}
花括号内的内容称为枚举元素/枚举常量
声明后可用来定义变量enum weekday{sun,mon,tue,wed,thu,fri,sat}; weelday workday,week_end; workday=mon; week_end=sun;也可以在声明枚举类型的同时定义枚举变量
enum {sun,mon,tue,wed,thu,fri,sat}workday,week_end;枚举元素作为常量,是有值的,编译系统按定义时的顺序赋值整数0,1,2…
cout<也可以在声明枚举类型时自己指定枚举元素的值
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}; 后续元素按顺序+1,sat为6PS:不能把一个整数直接赋给一个枚举变量,只接受枚举变量类型的数据
workday = tue; 正确 workday = 2; 错误 workday = weekday(2); 先进行强制类型转换,此时正确欢迎分享,转载请注明来源:内存溢出
评论列表(0条)