1、局部变量的生命周期,从代码生成那一行开始才分配存储空间,到代码块结束变量消亡。同时在函数外面定义的变量是全局变量,它的作用范围是从变量定义的那一行开始,到文件结束,所有方法内部都能共享。全局变量只定义不初始化,里面的值系统会自动初始化,局部变量不初始化,里面的值不确定。函数的形参也相当于在函数内部的变量。
一、结构体
1、要了解结构体变量是也有作用范围的,作用域从定义的那一行开始,到文件结束活代码块结束,类似变量的作用域,因为它也是一种变量。
2、c语言提供了两种类型的聚合类型,数据和结构。数组是相同数据类型的集合,它的每一个元素都是通过下标引用或指针间接引用。结构也是一些值的集合,这些值称为他的成员,但一个结构的各个成员可以有不同的类型。数组可以通过下标来访问,是因为数组元素的长度相同,但结构不同,所以通过名字来访问。
3、结构体和数组想整体初始化的时候,只能在定义的时候初始化。
- struct student
- {
- char *name;
- int no;
- };
-
- int main(){
- //如果想给结构整体赋值,只能在初始化的时候,否则职能单个赋值
- struct student stu = {“oher”, 123456};
-
- //定义结构题指针变量
- struct student *p;
-
- //取结构体地址赋值给指针变量
- p = &stu;
-
- //结构体取值的三种方式1点语法 2指针 3箭头
- printf(“name = %s, no = %d”, stu.name, stu.no);
- printf(“name = %s, no = %d”, (*p).name, (*p).no);
- printf(“name = %s, no = %d”, p->name, p->no);
- }
-
-
4、结构体可以嵌套,即一个结构体里面包含另一个结构体,但要注意不能包含自己类型的结构体。