C 采用全局变量解决调用函数参数问题和采用指针解决的区别

2025-04-09 00:57:29
推荐回答(4个)
回答1:

对于你个人开发来说,或许全局变量更加方便,但对于团队开发,全局变量是不被推荐的,函数的作用是用于封装一段功能,应该是独立的一段功能函数,过度依赖全局变量,一旦全局变量被意外修改会发生不可意料的错误,而且当你熟练运用指针你会发现它能给你带来许多便利,所以推荐你使用指针

回答2:

你这是代码比较少所以清晰,当代码量大的时候你就很麻烦的~

你的例:
#include
#include
int x,y;//全局变量 ,全局变量导致所有函数都有可能会修改x和y的值,所以你在定义其他函数的 //时候每次都要注意不要定义和全局变量的名称一样,不然 可以编译,但不是你想要的结果

void swap(void)
{
int temp;
int x=5; /还有一种情况:这里的x会屏蔽全局的x,导致你不想要的结果
temp = x;
x = y;
y = temp;
}

int main()
{
x=0;
y=1;
swap();
printf("a=%d\nb=%d\n", a,b);
getchar();
system("pause");
return 0;
}

回答3:

当一个程序比较小时,使用的变量个数很少,这当然可行。但是当程序稍大一点时,就会发现要定义的变量太多,特别是一些循环控制变量、临时变量等,不知道此前是否已经使用;赋初值会否使以前的数据丢失;一不小心把前面有用的数据覆盖了的话,这种逻辑错误很难查找。特别是很多要使用局部变量的递归程序,就无法使用。

回答4:

32位Windows内存地址采用平坦结构,内存地址都是32位整数,而指针变量的实质就是内存地址。所以,不管哪一种类型的指针变量都是4个字节大小。