7.有什么用
用来表示一个不需要经常改变或者不确定的数据.
8.变量的作用域在对应的代码块中(作用域可以理解为距离变量最近的两个成对的花括号)
For example :
#include <stdio.h>
int add() {
int num; // num的作用域范围在函数结束的花括号中
return 0;
}
int main ( ) {
int num; // 这个num的作用域在main函数中
num=2;
int a=100;
return 0;
}
7. 全局变量是什么
在所有函数外部定义的变量,称为全局变量.
8. 有什么特点
a. 生命周期跟随程序,程序启动创建,程序退出才会销毁.
b.作用域是其所在位置之下所有函数,都可以共享并改变
c. 变量的使用遵循就近原则
d. 如果没有初始化,默认值是0;
9. 结构体是什么
它是一种数据类型,是构造类型,里面可以存储不同数据类型的数据 // 常用数据类型
10.有什么用
可以封装不同数据类型到一个结构中,方便使用
typedf struct Person {
char *name;
int age;
int height;
}per;
11. 什么是结构体数组
它是数组,只不过数组里每一个元素是结构体类型,可以存储多个有关联的结构体.
12. 定义及初始化赋值:struct 结构体类型 数组名[长度]={结构体1,结构体2};
struct Person ={char *name ; int age ;};
int main(){
struct Person{
char *name;
int age;
};
struct Person per= {"itheima",2};
struct Person per1={"itcast",3};
struct Person arr[2]={"per,per1"};
printf("%s---%d\n",arr[1].name,arr[1].age);
return 0;
}
13. 什么是结构体指针
它是指针,不是指针类型而是结构体指针类型.
14.怎么用?
定义初始化赋值: struct 结构体类型 * 指针名=&结构体变量
For example: struct Person {char *name; int age;}; struct Person *p=&per;
取值 :(*指针名).结构体元素名; 指针名->结构体元素名;
赋值:(*指针名). 结构体元素名=新值; 指针名->结构体元素名=新值
For example: (*p).name, (*p).age; 或 p->age, p->name;
结构体分配内存空间遵循两个原则,对齐原则和对齐算法(增加CPU寻址效率)