网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
03月11日漏签0天
c++吧 关注:654,088贴子:2,118,058
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 4回复贴,共1页
<<返回c++吧
>0< 加载中...

C语言中,全局变量与局部变量同名时,如何判断

  • 取消只看楼主
  • 收藏

  • 回复
  • 凌云
  • |
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在写C语言程序的时候,变量分为“全局变量”和“局部变量”。它们主要是“作用域”的不同,“全局变量”,作用域在整个C语言源文件之内;而“局部变量”,作用域在一对大括号内。
若是在同一个作用域内,定义两个“重名”的变量时,程序会报错。比如,如下程序,在程序编译时,就会产生错误信息:

上述C语言代码是错误的,在编译时,产生的错误信息如下所示:

因为在第5行和第6行,在main函数之内,同时定义了两个“同名”变量num,所以,程序在编译的时候就会报错。但是,如果将其中一个num变量,定义在main函数的外面,那么就不会报错了。如下图所示程序:

上述C语言程序中,在第3行,定义了一个变量num,在第7行也定义了一个变量num,虽然这两个变量的名字相同,都是“num”,但是,其中一个变量属于“全局变量”,作用域在整个C语言源文件;另一个(第7行)定义的变量,属于“局部变量”,作用域在main函数中,所以,它们是不冲突的,程序在编译的时候,也不会报错。最终,程序执行的结果,以“局部变量”的值为准,程序执行结果如下图所示:
我们看到,最终,num的值,取的是第7行定义的变量的值。它属于“局部变量”,这是一种“就近原则”。这种“就近原则”,除了C语言之外,其它一些代码语言中,也会被体现到。比如在web开发的js代码中,如果将变量写在一个函数之内,另一个同名的变量,写在函数之外,在这门语言里,和C语言是一样的,也是会有“作用域”的概念,同样会有一个“就近原则”。所以,我们理解了C语言中变量作用域的“就近原则”,也有利于学习其它的一些编程语言。


  • 凌云
  • |
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


2026-03-11 12:01:04
广告
不感兴趣
开通SVIP免广告
  • 凌云
  • |
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶下


  • 凌云
  • |
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1


  • 凌云
  • |
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回c++吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示