黑马程序员技术交流社区
标题:
C语言的作用域
[打印本页]
作者:
koukou
时间:
2014-6-8 18:44
标题:
C语言的作用域
今天在基础课上,老师讲到作用域,我想到我以前解答的一道关于C语言作用域的问题,希望能给同学一点帮助
#include<stdio.h> main(){int i=5;{i++;} printf("%d",i);} 块总用域不是只在花括号内的吗,i++只作用于内层花括号,i++只在内层花括号中实现,最后结果应该是5,为什么最后结果是6呢?解答
你这是没有明白作用域的真正含义,首先,谈作用域,其对象是变量,比如i,a,b。而不是表达式,比如你说的i++。其次,你在main中定义了变量i,那么在整个main中,它都是有效的,除非你在内存花括号中重新定义i,那么在花括号中第一个i会暂时失效,执行完花括号中的语句后,第一个i才恢复有效。对表达式,我们关心的是其是否被执行。比如你给的例子中,表达式i++外面的花括号有没有都一样,i++都会被执行。
作者:
每天进步一点点
时间:
2014-6-9 11:19
说得直接些,就是看花括号内是否有重新定义了一遍
作者:
sen
时间:
2014-6-9 20:21
可以试一下使用插入代码功能,这样看得有点晕
作者:
徐开伟
时间:
2014-6-10 10:18
每天进步一点点 发表于 2014-6-9 11:19
说得直接些,就是看花括号内是否有重新定义了一遍
一句话总结 说的好~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2