欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

C语言 标识符的作用域

发布时间:2025/5/22 编程问答 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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;

#include <stdio.h> int x = 20;int main(void){puts("-------调用函数外层的变量-----------"); printf("x = %d\n", x);int x = 88;puts("---------调用函数内层的变量------------"); printf("x = %d\n", x); }

运行结果:

总结:

  • 如果 两个同名变量分别拥有文件作用域和块作用域,那么只有拥有块作用域的变量是 “可见” 的,而拥有文件作用域的变量会被 “隐藏” 起来。

  • 当同名变量都被赋予了块作用域的时候,内层的变量是“可见”的,而外层的变量会被 “隐藏” 起来。

  • 函数会就近原则,先找函数体内是否存在定义的变量,如果没有,则会寻找函数体外层的变量,如果都没有,程序会报错。

  • 程序是从上往下逐条执行的
    如果在引用变量的下方定义了变量,没有在上方定义变量,则不会调用函数体下方的变量。

  • 总结

    以上是生活随笔为你收集整理的C语言 标识符的作用域的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。