作用域问题代码

作用域问题

if

#include <stdio.h>

int main()

{

int a = 20;

int score = a + 100;

printf("%d\n", score);120

{

int score = 50;

{

score = 10;

printf("%d\n", score);10

}

a = 10;

}

{

score = a + 250;

int score = 30;

printf("%d", score);30

}

printf("%d\n", score);

return 0;

}

输出结果是:(注意:有个%d后面是没有的\n的)

120

10

30260

 

错误写法:

{
        int a = 10;
    }
    
    printf("a=%d\n", a);

时间: 2024-12-06 15:34:17

作用域问题代码的相关文章

ruby中的作用域和代码块

ruby中没有嵌套的作用域,它的作用域之间是分开的,一旦进入一个新作用域,原先的绑定就会被替换为一组新的绑定. 作用域门 一般来说,程序会在三个地方关闭前一个作用域,同时找开一个新的作用域. 它们分别是:class.module.def,它们被称为作用域门.class/module与def还有一点微妙的差别.在类或module中的代码会被立即执行.相反,方法中的代码只有在方法被调用的时候才执行. 扁平化作用域 my_var = "abc" class MyClass def my_me

angularjs1-2,作用域、代码压缩

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript" src="angular.min.js">

第四章—变量,作用域和内存问题(二)

第四章-变量,作用域和内存问题(二) JS没有块级作用域 js没有块级作用域,这个概念容易导致误解,这里就区分下几个情况,大家好好参考下: 我们知道,在其他类C的语言中,由花挂号封闭的代码块都有自己的作用域.但是在JS中,却没有块级作用域: 这里if(true){}代表条件永真,永远执行这条.if(false){}的话就是永远不执行这条. 这个代码执行之后,在if语句定义的变量,在if语句外可以访问的到.在if语句中的变量声明会将变量添加到当前的执行环境中(这里是全局环境). 还有如下的两个例子

javascript预解析和作用域

JavaScript解析过程分为两个阶段: 一是:编译阶段.就是JavaScrip预解析阶段,在这个阶段JavaScript解析器将完成把JavaScript脚本代码转换到字节码; 二是:执行阶段.在编译阶段JavaScript解析器借助执行环境把字节码生成机械码,并顺序执行; 预解析:在当前的作用域中,js代码执行之前浏览器会默认把所有带var 和function的进行提前的声明或者定义; eg:var num=1; sum(); function sum(){console.log(num)

储存类生命周期链接属性作用域总结

储存类:变量在定义时的储存类型对其在程序中的生命周期.连接属性及作用域有很大的关联链接属性: 无连接.内连接.外链接关键字:1.auto    用于修饰局部变量,在定义局部变量时,将其定义在栈上.普通局部变量存放在栈上,因为栈内存的特性决定了普通局部变量定时如果未初始化其的值是随机的,因为栈内存是脏的,变量在释放后并未对其初始化,且栈内存被广泛运用,也就造就了普通变量的特性.普通局部变量的生命周期是临时,可从其存放于栈上看出其临时的特性.普通局部变量的作用域为代码块中"{}",C89与

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

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

作用域、全局局部变量、链接属性、存储属性、生存期、内部外部函数

1. 首先看函数的定义: 类型 函数名(形式参数) { 代码块 //函数体就是代码块 } 函数名本身不属于任何代码块. 函数原型中声明参数 // 原型作用域.在原型中,参数的名字并非必须.如果出现,可以随便取任何名字,不必和形参.实参匹配. 函数定义的形式参数 //在函数体内部具有代码块作用域 函数调用的实际参数 2. 作用域(是对标识符而言,标识符:就是变量.函数.类型等的名字.它们有大小写字母.数字和下划线组成,但不能以数字开头.) 代码块作用域:任何在代码块的开始位置声明的标识符都具有代码

《你不知道的JavaScript》读书笔记(二)词法作用域

JavaScript 采用的是 词法作用域 的工作模型. 定义 词法化:大部分标准语言编译器的第一个工作阶段叫词法化(单词化),这个过程会对源代码中的字符进行检查,如果是有状态的解析过程,还会赋予单词意义. 词法作用域:定义在 词法阶段 的作用域. 词法作用域由谁决定:由你在写代码时将 变量 和 块作用域 写在哪里来决定.因此大部分情况下,词法分析器处理代码时会保持作用于不变. [例] function foo(a){ var b = a * 2; function bar(c){ consol

第4章变量、作用域和内存问题

4.1基本类型和引用类型的值 变量有两种数据类型:基本类型和引用类型. 4.1.1动态的属性 不能给基本类型的值添加属性,能给引用类型添加和删除属性和方法. 4.1.2复制变量值 一个变量向另一个变量复制基本类型的值,这两个值独立:一个变量向另一个变量复制引用类型的值,两个变量实际引用同一个变量. 4.1.3传递参数 所有函数的参数都是按值传递的.即把函数外部的值赋值给函数内部的参数,等价于把值从一个变量复制到另一个变量一样. 4.1.4检测类型 typeof 操作符确定变量的基本数据类型.in