黑马程序员技术交流社区
标题: 跪求大神指点这段代码如何分析,谢谢 [打印本页]
作者: Sunshine丶星空 时间: 2016-2-26 13:17
标题: 跪求大神指点这段代码如何分析,谢谢
int a;
intgetResult(int a){
return a++;
}
int main(){
a = getResult(a);
printf(“a=%d”,a);
{
int a = 10;
a = getResult(a);
}
printf(“a=%d”,a);
}
作者: 米阳 时间: 2016-2-29 10:10
首先 , 从上向下把每一句代码分析一边
其次 , 从main()函数开始 , 按执行顺序在逐句分析
作者: 冷傲阳 时间: 2016-2-29 23:49
计算机会先逐行的读取代码,直到读取到main函数,程序从这里进入,读到a = getResult(a);,a没有声明,系统会报错吧
作者: 菜逼 时间: 2016-3-1 00:06
本帖最后由 菜逼 于 2016-3-1 00:07 编辑
#include <stdio.h>
//定义一个全局变量a,此变量的作用域是整个程序,我叫它做全局变量a
int a; //全局变量a作用域开始
//这个函数里也定义了一个变量a,作用域是这个函数的函数体,我叫它做res_a
int getResult(int a){//res_a的作用域开始
return a++;
}//res_a的作用域结束
int main(){
a = getResult(a); //在这个代码之前,这个函数之中并没有定义同名的变量a,此时a是全局变量a.在Xcode中这个a是高亮显示的
printf("a = %d",a); //这个a也是全局变量a
{//大括号a的作用域开始
int a = 10; //在这句代码执行后,定义了一个局部变量a,作用域是最近的一对大括号,我叫它大括号a
a = getResult(a);
}//大括号a的作用域结束
printf("a = %d",a); //全局变量a
return 0;
}//全局变量a作用域结束
//在一个函数体中,同名的局部变量的优先级高于全局变量.
//在一个函数体重,如果存在同名的全局变量和局部变量,局部变量会把全局变量暂时屏蔽,一直到局部变量的作用域结束
我是ios基础班的学生,欢迎大神指出不足或者写错的地方.欢迎多多交流{:2_32:}
作者: 菜逼 时间: 2016-3-1 00:08
我靠,第一次这么认真回帖
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |