C语言 标识符的作用域
生活随笔
收集整理的这篇文章主要介绍了
C语言 标识符的作用域
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
#include <stdio.h> int x = 20;void print_x(void){puts("------print_x函数调用文件作用域------"); printf("x = %d\n", x);
}int main(void){int i;int x = 88;print_x();puts("-------main函数调用块作用域-----------"); printf("x = %d\n", x);puts("---for循环体打印for循环体内部块作用域---"); for (i = 0; i < 5; i++){int x = i * 100;printf("x = %d\n", x);}puts("---------main函数调用块作用域-----------"); printf("x = %d\n", x);
}
运行结果:
由于print_x函数内没有定义变量,所以会引入 函数体外定义的变量 x = 20;
当在main函数内部打印x变量时,会在内部寻找是否定义了x 变量 如果有,则会就近原则打印main 内部定义的变量,如果没有 则会打印 main 函数体外面的变量。
for循环会打印循环体中的变量,当for语句的循环结束之后,该变量 x 的名称就会失效。
所以在调用最后一个printf函数时,x值显示的是mian函数内定义 x = 88;
运行结果:
总结:
如果 两个同名变量分别拥有文件作用域和块作用域,那么只有拥有块作用域的变量是 “可见” 的,而拥有文件作用域的变量会被 “隐藏” 起来。
当同名变量都被赋予了块作用域的时候,内层的变量是“可见”的,而外层的变量会被 “隐藏” 起来。
函数会就近原则,先找函数体内是否存在定义的变量,如果没有,则会寻找函数体外层的变量,如果都没有,程序会报错。
程序是从上往下逐条执行的
如果在引用变量的下方定义了变量,没有在上方定义变量,则不会调用函数体下方的变量。
总结
以上是生活随笔为你收集整理的C语言 标识符的作用域的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: C语言显示字符型和整型数据类型的表示范围
- 下一篇: Qt Creator创建项目