c语言变量作用域问题
c语言中的变量作用域总结
#include<stdio.h>
int main()
{ int a=;
printf(“%d\n”,a);
return ;
}
int main()
{ int a=; //结构体中
{
//首先结构体中是可以访问外层的变量的,这里可以直接访问a;
//printf(“%d\n”,a);
//其实上边在访问a的时候,编译器是会先在当前结构体中找a,如果没有才找外层的a
int a = ;//当然这里这个a只属于当前结构体中,即在大括号结束时,a被销毁,并不会影响外边的a;
printf(“%d\n”,a);//输出1
} printf(“%d\n”,a);//输出还是0
return ;
}
int main()
{
int a = ;
//第一层结构体
{
printf(“%d\n”,a);//输出0
int a = ,b=;
printf(“%d\n”,a);//输出1
//第二层嵌套
{
printf(“%d\n”,a);//输出1
int a = ;
printf(“%d\n”,a);//输出2
}
}
printf(“%d\n”,a);//输出0
//printf(“%d\n”,b);//这个是不能访问的,b在内层结构体中
}
int main()
{
//在for的循环体中定义变量,且循环体只有一条语句,建议任何时候都写大括号
for (int a=; a<; a++)
int b = ;//报错,不能定义变量,要定义只能在大括号中 return ;
}
int main()
{
for(int a=; a<; a++,b++)//这里的b当然是不能访问了,b是在下边的一对大括号中定义的,也就是内层结构体中
{
printf(“%d\n”,a);//依次输出0、1、2,前提上边小括号中的b++删掉
int a = ;//这个重名的a是可以的,在上边定义过a后,循环体重可以继续定义a,这个根据1、2中的结构体来理解
int b = ;
printf(“%d\n”,a);//每次都输出10
}
return ;
}
int test(int num1, int num2)
{
int num1 = ;//这个是不允许的,按照上边的for循环来讲是可以的,但是函数的形参是等待接收实参的值的,并且这个值要在函数体中参与运算的,是一个很有意义的变量,c不允许重新定义与形参同名的变量名以防止这个形参真的没了意义,而for中的a只是让循环继续的一个条件,即使在循环体中重新定义了,每次循环结束后,会被释放,a又回到了原来的值,并不影响循环,所以可以;
return ;
}
c语言变量作用域问题的更多相关文章
- 黑马程序员-- C语言变量作用域与代码块
这里通过变量作用域的两种错误用法来介绍一下C语言变量作用域 其次对代码块的使用进行了简单说明: #include <stdio.h> 1.变量的作用域(作用范围) 变量定义的那一行开始,直 ...
- Go语言【第八篇】:Go语言变量作用域
Go语言变量作用域 作用域为已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围,Go语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量: 函数外定义的变量称为全局变量: 函数 ...
- GO语言学习(十三)Go 语言变量作用域
Go 语言变量作用域 作用域为已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围. Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函 ...
- go语言变量作用域
Go 语言变量作用域 作用域为已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围. Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函 ...
- Go 语言变量作用域
作用域为已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围. Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函数定义中的变量称为形式 ...
- Go的变量作用域
Go 语言变量作用域 作用域为已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围. Go 语言中变量可以在三个地方声明: 函数内部定义的变量称为局部变量 函数外部定义的变量称为全局变量 ...
- OC的特有语法-分类Category、 类的本质、description方法、SEL、NSLog输出增强、点语法、变量作用域、@property @synthesize关键字、Id、OC语言构造方法
一. 分类-Category 1. 基本用途:Category 分类是OC特有的语言,依赖于类. ➢ 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式 ● 继承 ● 分类(Categor ...
- C/C++语言中变量作用域:局部变量,全局变量,文件级变量
C/C++语言中的变量分为全局变量和局部变量. 这样的划分方式的根据是变量的可见范围或者叫做作用域. 1 局部变量 局部变量指的是定义在{}中的变量,其作用域也在这个范围内.尽管常见的局部变量都是定义 ...
- [转]深入理解JavaScript的变量作用域
1.JavaScript的作用域链 2.函数体内部,局部变量的优先级比同名的全局变量高. 3.JavaScript没有块级作用域. 4.函数中声明的变量在整个函数中都有定义. 5.未使用var关键字定 ...
随机推荐
- SignalR 简介
SignalR 简介 由帕特里克 · 弗莱彻|2013 年 2 月 27 日 英文原文地址:http://www.asp.net/signalr/overview/getting-started/in ...
- Android之adb命令
1.安装APK(如果加 -r 参数,保留已设定数据,重新安装filename.apk) adb install xxx.apk adb install -r xxx.apk 2.卸载APK(如果加 - ...
- 安装包安装服务,点修复出现的错误”Error 1001:指定的服务已存在“ 解决办法
安装项目下,右键视图->自定义操作,出现安装.提交.回滚.卸载四个文件夹,右键安装,添加自定义操作,选择安装的服务为输出文件 右键安装输出文件->在condition->Not (I ...
- [转]oracle 实现插入自增列
本文转自:http://blog.csdn.net/love_zt_love/article/details/7911104 刚使用oracle,它和sql server 好多地方还是有所不同的,简单 ...
- 8款唯美设计的HTML5/CSS3应用
1.CSS3漂亮的自定义Checkbox复选框 9款迷人样式 今天我们来分享一款9款样式迷人的CSS3漂亮的自定义Checkbox复选框.这几款复选框样式很丰富,使用起来也比较方便. 在线演示 源码下 ...
- apache commons-email1.3使用
apache commons-email1.3下载地址: https://repository.apache.org/content/repositories/orgapachecommons-0 ...
- Codevs 2837 考前复习
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description Aiden马上要考试了,可他还没怎么复习,于是他 ...
- java大数--总结
BigInteger(高精度整数) 1.所在包: java.math.BigInteger 2.大数运算,以下返回类型均为BigInteger BigInteger a; BigInteger b; ...
- sicily 1010. 单词数值
本题主要是Hash思想的应用 课程上机练习题 Contest ends in 8 months 27 days
- 字节的高低位知识,Ascii,GB2312,UNICODE等编码的关系与来历
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理 ...