接上。
标识符就是变量的名称,可以用来指定特定对象的内容。
作用域,通俗地来说就是标识符的活动空间,就像孙猴子(程序猿)给他师父(标识符)画的圈,官方的说法呢就是程序中可访问标识符的区域(可以在哪找到标识符)。
一个C变量的作用域可以是块作用域、函数作用域、函数原型作用域或是文件作用域。
- 块是用一对花括号括起来的代码区域。定义在块中的变量具有块作用域,块作用域变量的可见范围是从定义处到包含该定义域的块的结尾。另外,虽然函数的形式参数声明在左花括号之前,但他们也具有块作用域,属于函数体这个块。
在该例中,d的作用域仅限于内层块,只有内层块中的代码能访问d。对于for循环还可以这么写,其他循环或选择语句类似int a(int b) //b属于a的函数块 { int i,c = 0; for(i = 0; i < 9; i++) { int d = b * i //d的作用域开始 ... } //d的作用域结束 return d; }
for (int i=0; i < 9; i++) //变量i被视为for循环块的一部分,作用域仅限于for循环,一旦 //离开循环就不能再访问。
-
函数原型作用域用于函数原型中的形参名,其范围从形参定义处到原型声明结束。不过形参名只有在变长数组中才有用。
int e(int f, int g); viod h(int j, int k, ar[j][k]); //方括号中必须使用在函数原型中已声明的名称
-
变量的定义在函数的外面,具有文件作用域,从它的定义处到该文件末尾均可见