读书人

一道题

发布时间: 2012-02-10 21:27:42 作者: rapoo

求助一道题
int a;

fun(int i)

{ a+=2*i;

return a; }

main(){

int a=10;

printf( "%d,%d\n ",fun(a),a);

}



[解决办法]
int a;

int fun(int i)

{ a+=2*i;

return a; }

int main(){

int a=10;

printf( "%d,%d\n ",fun(a),a);
return 0;

}
楼主是这个意思吗?
[解决办法]
不明白什么意思
声明的外部全局变量a默认初始化为0,所以fun的返回值为0+2*10
[解决办法]
如果在全局变量的范围内出现了与全局变量同名的局部变量,则在局部变量的范围内,全局变量被屏蔽,在这个函数中全局变量与局部变量的范围如下:

int a; /*全局变量开始*/

fun(int i)

{ a+=2*i;

return a;
}

main(){

int a=10; /*局部变量开始*/

printf( "%d,%d\n ",fun(a),a); /*局部变量释放*/

} /*全局变量释放*/
[解决办法]
???没明白楼主想要问什么

读书人网 >C语言

热点推荐