zoukankan      html  css  js  c++  java
  • C和指针 第三章 四种作用域

    代码块作用域:

    任何位于一对花括号之间是一个代码块,代码块内声明的标识符具有代码块作用域,嵌套代码块内,内部变量会屏蔽外部相同标示的标示符,非嵌套代码块,不会同时处于活动状态所以不会屏蔽。

    int main()
    {
    	int value = 123;
    
    	{
    		int value = 456;
    		printf("%d
    ", value);
    	}
    
    	{
    		int value = 789;
    		printf("%d
    ", value);
    	}
    
    	printf("%d
    ", value);
    }
    
    123和456以及789是嵌套,会屏蔽123,456和789是非嵌套不互相影响。
    

      

    文件作用域

    所有在代码块之外声明的标识符都具有文件作用域,标示这些标识符,从声明之处到所在文件结尾都可以访问,当使用

    #include
    

     包含头文件时,头文件内部的声明并不局限于头文件的文件尾,而是#include的文件尾。

    原型作用域

    指函数声明中的参数,为了防止参数名与程序其他部分名字冲突。事实上,唯一的冲突就是在一个原型中不止一次使用同一个名字。

    函数作用域

    特指goto语句的作用域,goto对函数内所有变量可见。

    #include <stdio.h>
    
    int main()
    {
    	char msg[] = "this is outer
    ";
    	label: 
    		printf("%s
    ", msg);
    	{
    		char msg[] = "this is inner
    ";
    		printf("%s
    ", msg);
    		goto label;
    	}
    }
    会一直输出:
    this is outer
    

      

  • 相关阅读:
    牢骚
    【题解】LFYZNoip前水题赛 T6
    【模板】 ST表
    【模板】高精度。。。。。
    【模板】堆优化 + dij +pair 存储
    【模板】树状数组
    近两天目标
    当堆遇到STL 代码焕发光芒
    【模板】并查集
    【NOI2000】 单词查找树
  • 原文地址:https://www.cnblogs.com/yangxunwu1992/p/5766757.html
Copyright © 2011-2022 走看看