您好、欢迎来到现金彩票网!
当前位置:盛世彩票 > 复合语句 >

变量同名时内复合语句的变量将取代外复合语句的怎么理解?

发布时间:2019-08-06 00:26 来源:未知 编辑:admin

  明明输出的是1和0,怎么说1取代0了??既然是取代,为什么0会显示出来,那么“变量同名时,内复合语句的变量将取代外复合语句的变量”这句话怎么理解?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  这个取代,指的是在内层变量作用域中,外层变量被取代。main中的a在内层花括号内被取代为新的a,出了花括号回到main,内层a的作用域结束,以前的a继续生效。

  展开全部main函数中的变量a的作用域为main函数的一对大括弧,在其中写的大括弧中的变量a的作用域为这对大括弧。

  所谓作用域就是,进入大括弧后,遇到开设变量,系统会在堆栈中申请开设新变量,系统不人为你新开设的变量与括弧外其他变量是同一变量,在大括弧结束后,这个新开的变量就被舍弃了。好比你开的变量a,我们可以叫它aa,在大括弧中所有写变量a的地方,编译程序都认为对应aa,根main函数中的变量a的地址完全不同。你程序把它们的名称起了同一个,编译程序会根据括弧范围区别对待的,不会混淆。

  就是说内层代码中如果声明了变量a,那么在内层使用的a一定是指在内层声明的变量,而不是外层的,即使外层有同名变量……

http://coolscala.com/fuheyuju/809.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有