变量作用域:变量的可用范围
按照作用域的不同,变量可以分为:局部变量和全局变量
特点:不同作用内出现同名变量,内部作用域的变量会覆盖外部作用的变量
局部变量:定义在函数内部的变量以及函数的形参称为局部变量
作用域:从定义哪一行开始直到与其所在的代码块结束
生命周期:从程序运行到定义哪一行开始分配存储空间到程序离开该变量所在的作用域
特点:
1、相同作用域内不可以定义同名变量
2、不同作用范围可以定义同名变量,内部作用域的变量会覆盖外部作用域的变量
Int main(){
int age = 5;
if(age==5){
int height = 1;
}// height的作用域在此处就结束了
printf(“年龄为:%d”,age);//对
printf(“身高为:%d”,height);//错
}
Int main(){
char *home = “你家”;
char *harry = “外边的流浪狗”;
if(strcmp(home,”你家”)==0){
char *harry= “你们家的狗”;
printf(“harry = %s”,harry);
//输出 你们家的狗
}
}
全局变量:定义在函数外边的变量称为全局变量
作用域范围:从定义哪行开始直到文件结尾
生命周期:程序一启动就会分配存储空间,直到程序结束
存储位置:静态存储区
Int num = 10 //定义全局变量
Int sum(int v1,int v2){
printf(“num = %d”,num);
return v1 + v2;
}
定义的格式:变量类型 变量名 = 初始化值;
变量名 = 初始化值
//省略类型,默认该变量为 int 类型
声明的格式:变量类型 变量名,可以多次声明
.全局变量若仅仅声明没有定义,则系统会按照声明的类型将其初始化为0