A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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);            

}


4 个回复

正序浏览
我靠,第一次这么认真回帖
回复 使用道具 举报
本帖最后由 菜逼 于 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:}
回复 使用道具 举报
计算机会先逐行的读取代码,直到读取到main函数,程序从这里进入,读到a = getResult(a);,a没有声明,系统会报错吧
回复 使用道具 举报
首先 , 从上向下把每一句代码分析一边
其次 , 从main()函数开始 , 按执行顺序在逐句分析
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马