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

如题所述

第1个回答  2019-03-02
你这是代码比较少所以清晰,当代码量大的时候你就很麻烦的~
你的例:
#include
<stdio.h>
#include
<stdlib.h>
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;
}
第2个回答  2019-08-28
当一个程序比较小时,使用的变量个数很少,这当然可行。但是当程序稍大一点时,就会发现要定义的变量太多,特别是一些循环控制变量、临时变量等,不知道此前是否已经使用;赋初值会否使以前的数据丢失;一不小心把前面有用的数据覆盖了的话,这种逻辑错误很难查找。特别是很多要使用局部变量的递归程序,就无法使用。
第3个回答  2020-03-18
32位Windows内存地址采用平坦结构,内存地址都是32位整数,而指针变量的实质就是内存地址。所以,不管哪一种类型的指针变量都是4个字节大小。
相似回答