黑马程序员技术交流社区

标题: 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