您的位置:首页 > 其它

被调函数的作用域问题

2010-11-08 13:55 288 查看
认知一:

c语言程序设计无非是变量,操作语句,以及函数。
函数为结构化设计创造了条件,函数有有参数,和无参数之分。有参数的函数主要是对函数的调用很有意义的。无参数的函数,虽可以实现c编程的结构化,但它造成了变量的混乱,即被调用函数中的变量和主函数中变量的混乱。在上万行的c程序里,可以想象这种混乱将造成多少程序的错误和团队合作的难度。
我个人认为:这便是函数参数的意义之所在。

论证:

#include"stdio.h"

hellow ()

{

int a;

a=a+3;

return a;

}

main ()

{

int a;

a=5;

hellow();

printf ("a=%d",a);

}

TC3.0下的运行结果是:a=5

#include"stdio.h"

hellow (int a)

{

a=a+3;

return a;

}

main ()

{

int a;

a=5;

hellow(a);

printf ("a=%d",a);

}

TC3.0下的运行结果是:a=5

#include"stdio.h"

hellow (int *a)

{

*a=*a+3;

return *a;

}

main ()

{

int *a;

*a=5;

hellow(a);

printf ("*a=%d",*a);

}

TC3.0下的运行结果是:*a=8

结论:

被调函数的变量被封装,作用域仅在其函数体内部,主函数中的变量也是无法干预的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: