目录
一、学习的知识点
作业
- 数组作为函数参数,他的书写格式有三种:char pstr[20]、char pstr[]、char *pstr
- 形参名可以省略:int fun(int,int)
1、函数
函数间的数据传递
- 参数传递:值传递、地址传递
- 返回值
- 全局变量:函数外定义,在整个工程中都可以使用,在不同的文件使用时,需要加extern
变量的生存期
静态存储方式:由系统分配固定的存储空间,全局变量就存在静态存储区
动态存储方式:存放以下数据:
- 函数的形参
- 自动变量(未加static声明)
- 函数调用时的现场保护和返回地址
内存中的存储区域包括
- 程序代码区:存放函数体的二进制代码
- 静态区/全局区:全局变量和静态变量的存储区域
- 堆区(heap):程序员分配释放
- 栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值
存储类别
存储类别是数据在内存中的存储形式,是变量的属性
使用语法:
存储类别 | 数据类型 | 变量名称 | // |
---|---|---|---|
auto | int | a; | 自动变量 |
static | int | b; | //静态 |
register | int | I; | //寄存器变量 |
extern | int | A; | //引入外部变量 |
在静态存储区分配存储单元,在编译时赋初值,而且只赋初值一次。如果没有赋初值,系统就会自动赋0或空字符。若函数中存在静态变量,调用函数时,该变量只会被初始化一次,再次调用时不会初始化。
2、结构体
结构体是一个数据类型,可以将不同类型的数据组合成一个整体。如:学生有学号、姓名、性别、年龄等
结构体声明
声明时,系统不会开空间,只有在定义变量时,才会开空间。结构体内的存储单元以结构体内占用空间最大的数据类型对齐、顺序对齐。结构体的类型不可以重复
struct student_1 //struct student_1是一个数据类型,相当于int、float
{
char name[20];
int age;
}staff;//变量名为staff
//typedef作用是重命名,struct student_1 重命名为 STAFF_T
typedef struct student_1 STAFF_T;
结构体初始化
与变量和数组一样,结构体变量也可以在声明时初始化
struct employee
{
int no;
char name [20];
}stu={123,”abc”};
struct employee
{
int no;
char name [20];
}stu={123};
结构体赋值
按声明的顺序赋值,可以部分元素初始化,剩余的元素为0。
STAFF_T staff={1001,“admin”}; //定义一个名为staff的结构体类型
//结构体数据成员(属性)的访问:变量名+点运算符+数据成员名
staff.name
//结构体中字符串元素的修改
strcpy(staff1.name,"sxr")
char *memcpy(char *dest,const char *source,int size); //内存拷贝,成功时返回dest,否则返回NULL
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
学习了结构体这个新知识
四、作业的思路、不会的地方
还没看
五、其他需要反馈的问题
无
六、心得体会
一阶段开始学习的都是新知识了,课前要做好预习才能跟上。