黑马程序员技术交流社区

标题: C语言之变量及其作用域 [打印本页]

作者: chuanzhang    时间: 2016-2-21 23:40
标题: C语言之变量及其作用域
1、不同作用域的变量可以同名
int  add(int a,int b,int sum){
sum=a+b;
return sum
}
int main(){
int a=1;
int b=3;
int sum;
sum=add(a,b);
printf("sum=%d",sum);
return 0;
}
2、外层作用域和内层作用域有同名变量时,内层作用域使用自己的变量
#include<stdio.h>
int mian(){
int a=3;{
int a=5;
printf("a=%d",a);//a=5
}
printf("a=%d",a);//a=3
}
3、作用域可以被包含
#include<stdio.h>
int mian(){
int a=3;{
a=5;//两个a为同名
printf("a=%d",a);//a=5
}
printf("a=%d",a);//a=5
}

4、就近原则:通过变量名使用变量时,会优先在当前作用域寻找,没有就去父层寻找
#include<stdio.h>
int mian(){
int a=3;{
printf("a=%d",a);//a=3//本区域没有变量a,到其父层寻找变量a
}
printf("a=%d",a);//a=3
}

5、变量不会在同一级别的作用域中寻找
void  sum(){
int  k=9;

int main(){
sum();//sum()={int k=9;}
{
k=9;
printf("k=%d",k);//编译报错   无定义
}
return 0;
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2