1.当数组当成是参数,我们给的是数组名,数组名其实就是数组的首地址。
2.数组作形参数时 函数在被调用的时候,会拷贝数组名的对应的地址,然后通过这个地址访问数组,就相当于直接操作的原来的数组。
当数组作为函数的参数的时候,是可以直接被修改的,形参和实参指向同一个数组。
函数实现中,对形参接收的数组求占内存大小(即数组首地址),所得结果永远是8/4;
如果需要通过函数遍历整个数组,至少需要两个参数,一个是数组,一个是数组个数。
练习(1)写一个函数,遍历打印一个数组,
(2)编写一个函数,对数组的所有元素随即赋值,返回值时void
(3)编写一个函数,实现根据参数的不同打印不同类型的girl;
3.枚举:
(1)枚举时另外一种构造数据类型,
(2) 核心意义是讲可能性控制在可控范围内。 意义,提高代码的可读性。
(3)枚举的语法: enum tepy{
sport=1,slept
};
/*
4.结构体,声明,定义,使用。
1.结构体:是为了解决混合数据类型的存储,是构造数据类型,
(1)声明 关键字:struct struct 结构体名字{ 类型 子变量名;类型 子变量名;......} 在.h中存储。
(2)定义:声明变量并且初始化,struct 结构体名 变量名={ 按顺序初始化};在main中定义,
(3)访问:( . )优先级最高。
(4)结构体的字符串同样不能直接复制,需要使用字符串函数。相同类型的结构体之间可以直接整体复制,
2.[别名定义]typedef 初始类型 自定义类型名 typedef struct Stu student;
实现将一个数据类型,定义成一个别名,
最主要是个给 数路类型名比较长的用,结构体;
练习,
(1)使用student结构体,声明存储三个人的信息,比较谁的分数最高,并输出所有信息。
(2)声明一个函数,实现,讲结构体数组遍历打印,输出里面所有结构体的信息
3.结构体的嵌套使用。
4.结构体和数组,结构体数据类型也可以通过数组来批量存储。
。
5.结构体的内存占用,(1)按顺序添加(2)内存对齐,前面占用的内存是将要占用的整数倍,(3)每一次按内存最大的元素申请内存