重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
作用域:起作用的区域
在庄浪等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、做网站 网站设计制作按需定制,公司网站建设,企业网站建设,品牌网站制作,网络营销推广,成都外贸网站制作,庄浪网站建设费用合理。
变量按作用域分:
局部变量:定义在函数内部的变量
全局变量 :定义在函数外部的变量
变量按存储类型分
auto:自动类型
作用域决定变量的生命周期
注意点:如果局部变量和全局变量起冲突,局部变量此时会成瞎子,看不到全局变量的存在
函数递归
A、声明不需要形参,只需要形参的类型
B、 形参作用域限制在函数体 { } 之间
不用纠结它是不是所谓 中国式翻译 的 原型作用域
如果函数本身带static修饰,那么作用域是当前文件,从声明位置或者定义位置,到文件结尾。
如果函数没有static,那么作用域为整个工程或者说是项目。
作用域的定义是这样的:如果一个变量在某个文件或函数范围内是有效的,则称该文件或函数为该变量的作用域,在此作用域内可以引用该变量,所以又称变量在此作用域内“可见”,这种性质又称为变量的可见性。例如
文件file.c
int a;
main函数
{…
f2();
…
f1();
}
f1函数
{auto int b;
…
f2()
…
}
f2函数
{static int c;
…
}
这里a的作用域就是整个文件,b的作用域是f1函数,c的作用域是f2函数!其实作用域就是作用范围没什么很复杂的概念!
我的理解哈:
这是个变量作用域问题:当你的花括号内重新定义了一个 变量 以后,这个变量就在花括号之内有效,出了花括号这个变量就没用了。比如,把你的程序改成:
#includestdio.h
main() {
int i=5;
{int i=5;
i++;}
printf("%d",i);
}
实验一下,最后的i得5。如果你把printf改到花括号内,i就得6。这说明花括号内的变量i是独立于括号外定义的i的。
当你花括号内没有定义与括号外变量重名的变量时,所有变量继承。这也就是说在花括号里,也可以对于其他变量操作,而只是新定义的重名变量的作用域在你的花括号之内。你来个i++,i自然加一了。