博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言全局变量与局部变量(当变量重名时)的使用情况
阅读量:7239 次
发布时间:2019-06-29

本文共 1171 字,大约阅读时间需要 3 分钟。

在c语言中,变量有全局变量局部变量之分,这一点和很多高级语言类似,如c#,java等。不过与c#,java中的局部变量如在全局变量作用域内则不允许与全局变量名相同,而c语言是允许这样做的。这样的做法极不提倡,但是c语言既然允许这么做,就分析一下其变量名相同时在不同位置调用该变量名时所实际调用的是哪个变量值。

代码如下:

#include 
//全局变量//作用域:从定义开始到文件结束//默认初始值为0int c = 1;int test(){ int c = 2; //这个位置int c = 1; int c = 2;都起作用, //则使用作用域最近的c = 2; //2 printf("%d\n",c);}//当在调用变量时有多个同名变量起作用的时候//则使用作用域离自己最近的变量//133423int main(){ //这个位置只有你int c = 1;起作用 //1 printf("%d\n",c); //局部变量 //作用域:从定义开始到函数结束 //没有默认初始值 int c = 3; //这个位置int c = 1; int c = 3;都起作用, //则使用作用域最近的c = 3; //3 printf("%d\n",c); { //这个位置int c = 1; int c = 3;都起作用, //则使用作用域最近的c = 3; //3 printf("%d\n",c); //局部变量 //作用域:从定义开始到代码块结束 //没有默认初始值 int c = 4; //这个位置int c = 1; int c = 3;int c = 4;都起作用, //则使用作用域最近的c = 4; //4 printf("%d\n",c); } //查看test()函数内部 //2 test(); //这个位置int c = 1; int c = 3;都起作用, //则使用作用域最近的c = 3; //3 printf("%d\n",c); return 0;}

结果:

133423

总结:当在调用变量时有多个同名变量起作用的时候,则使用作用域离自己最近的变量

转载于:https://www.cnblogs.com/yoran-yang/p/4282793.html

你可能感兴趣的文章
两个与后台有关的回调处理
查看>>
idhttp.post方式 调用datasnap rest 远程方法
查看>>
Gulp快速入门
查看>>
TClientDataSet的 fastscript封装
查看>>
有用的国外开源项目网址
查看>>
DataGridView 绑定DataTable方式编辑保存的bug?
查看>>
ComboBox 使用数据绑定时 Sorted 属性的bug
查看>>
BZOJ 3172 单词(ac自动机)
查看>>
具体数学第二版第四章习题(2)
查看>>
DotNetBar.7.0 Crack
查看>>
D3D中深度测试和Alpha混合的关系
查看>>
延时执行和取消延时执行
查看>>
关于线程安全
查看>>
使用Java自带的VisualVM监控远程主机JVM内存使用情况
查看>>
123——Appium Girls活动
查看>>
Linux系统CPU频率调整工具使用
查看>>
使用大于16TB的ext4文件系统
查看>>
jquery ajax cache的问题
查看>>
VIM 与 系统剪切版
查看>>
我用iPad / iTouch来做什么
查看>>