C语言之作用域

1:作用域的概念

(1)作用域是描述这个变量起作用的代码范围。

(2)基本来说,C语言变量的作用域规则是代码块作用域。意思就是这个变量起作

用的范围是当前的代码块。代码块就是一对大括号{}括起来的范围,所以一个变量

的作用域是:这个变量定义所在的{}范围内从这个变量定义开始往后的部分。(这就

解释了为什么变量定义总是在一个函数的最前面)

2:示例代码

#include <stdio.h>

int var = 10;

int main(void)
{
    printf("in main var = %d \n",var);    //10
    int var =5;
    
    if(var>0)
    {
        printf("var before if = %d \n",var);   //5
        int var = 2;
        printf("var in if =%d \n",var);   //2
        
    }
    return 0;
}

运行结果:

in main var = 10
var before if = 5
var in if =2

时间: 2024-10-25 14:44:46

C语言之作用域的相关文章

黑马程序员-c语言变量作用域问题

c语言中的变量作用域总结 不管什么语言,main好像总是程序的入口,大括号是它的内容:变量的作用域总是困扰着我们,接下来,我们循序渐进的搞明白c语言中的变量作用域,首先得知道c是弱类型的语言,弱类型表现在很多方面: 1:你可以直接在程序中写一个常量,然后一个分号:1: 2:在定义函数时,void型的函数可以return:int型的可以不用写返回值. ---还有很多 下面我们一步一步开始:首先在main中定义的变量当然作用于整个main函数了 1:在main中定义变量 #include<stdio

R语言变量作用域

语言采用的是Lexical Scoping(词法作用域).词法作用域,又称静态作用域,即变量定义后的作用域是不变的. 在函数的主体里面,变量是分为被约束的.局部的.或自由的三种.被约束的变量是指匹配函数形式参数的变量.局部变量是指,在函数主题内创建和定义的变量.自由变量指的是那些既不是 局部也不是被约束的变量.当一个函数主体被求值,确定一个局部或 被约束变量的值没有问题.作用域规则决定了一个语言如何为自由变量 找恰当的值. 在R中,自由变量的取值是由它所在函数定义的环境(environment)

[日常] Go语言圣经--作用域,基础数据类型,整型

go语言圣经-作用域 1.一个声明语句将程序中的实体和一个名字关联,比如一个函数或一个变量 2.一个变量的生命周期是指程序运行时变量存在的有效时间段;声明语句的作用域对应的是一个源代码的文本区域,它是一个编译时的属性 3.句法块是由花括弧所包含;我们可以把块(block)的概念推广到包括其他声明的群组,这些声明在代码中并未显式地使用花括号包裹起来,我们称之为词法块. 4.全局作用域 包级语法域 源文件级的作用域 局部作用域 函数级的作用域 5.从最内层的词法域向全局的作用域查找.内部的会覆盖外部

黑马程序员——c语言学习—作用域详解

-----------Java培训.Android培训.IOS培训..Net培训.期待与您交流!------------ 本节我们系统学习一下c语言中的变量类型及作用域. 1.全局变量 全局变量是在从定义开始,到整个程序结束都存在的变量,他是在所有函数体的外面定义的变量,存储在静态存储区,所有的代码都可以访问,定义如下: #include <stdio.h> int a; // 定义全局变量 int main() { a = 10; // 函数内可以访问 return 0; } 需要注意的是,

c# 语言变量作用域

今天工作发现如下代码会报错 1 if (oskarray.Length > 0) 2 { 3 4 5 } 6 else 7 { 8 Process p = new Process(); 9 } 10 Process p = new Process(); 原因是p被重复定义 但是我的理解应该一对大括号之内的变量是被限制在这对大括号之内的吗? 记在这

【转】C语言中标识符的作用域、命名空间、链接属性、生命周期、存储类型

Technorati 标签: C,标识符,作用域,命名空间,链接属性,生命周期,存储类型,scope,name space,linkage,storage durations,lifetime 无论学习哪一种语言,都免不了要讨论这些问题.而且这些问题,深究起来有时也让我们很迷惑. 标识符的定义无需多讲,只需注意不仅仅是指变量,还有函数,标签等. 1. 标识符的作用域 作用域是指允许对标识符进行访问的位置范围.按照C99(章节6.2.1),C语言的作用域共有 4 种类型:文件作用域.代码块作用域.

嵌入式 Linux C语言(八)——存储类型、作用域、生命周期、链接属性

嵌入式 Linux C语言(八)--存储类型.作用域.生命周期.链接属性 一.存储类型 C语言中,每个变量和函数都有两个属性:数据类型和数据的存储类型. 变量的存储类型是指存储变量值的内存类型.变量的存储类型决定变量何时创建.何时销毁以及它的值将保持多久.计算机中有三个地方可以用于存储变量:普通内存,运行时堆和栈,硬件寄存器.变量的存储类型取决于声明变量的位置. C语言存储类别说明符: 说明符 用    法 auto 只在代码块内变量声明中被允许, 表示变量具有本地生存期 extern 出现在顶

C语言函数的作用域规则

“语言的作用域规则”是一组确定一部分代码是否“可见”或可访问另一部分代码和数据的规则. “同一函数中,不同的结构体成员名能相同,当变量处于不同的作用域时,名称可以相同. 注:作用域,其对象是变量,而非表达式.” C语言中的每一个函数都是一个独立的代码块.一个函数的代码块是隐藏于函数内部的,不能被任何其它函数中的任何语句(除调用它的语句之外)所访问(例如,用g o t o语句跳转到另一个函数内部是不可能的).构成一个函数体的代码对程序的其它部分来说是隐蔽的,它既不能影响程序其它部分,也不受其它部分

[MATH] - 数学语言和程序语言的对比

共同之处:都使用字符串或数值来引用一个客观实体.当然数字和字符串也可以作为实体对象,这取决于人的解释. 不同之处:数学语句每一行都给出了一个结论, 程序语句的每一行都定义了一个过程.注意这里所指的程序语句不局限于计算机编程语言,在进行数值逼近解微分方程的时候,表达式成为了程序语句. 数学语句的每一行都是一个结论,在给定范围内,每个符号只能引用同一个实体,换句换说,每个符号都是”给定“或”任意给定” 的!意味着这行语句可以成为所有后来出现的结论的前提条件.但是在程序语言中,一个符号可以引用不同的实