C语言笔记-全局变量及指针理解
以下程序
#include <stdio.h>
void _swap(int a, int b)
{
int temp=a;
a=b;
b=temp;
}
int main(void)
{
int a=5,b=10;
_swap(a,b);
printf("a=%d b=%d",a,b);
return 0;
}
运行结果仍为a=5,b=10,原因为两个函数的a,b都是局部变量,占用地址空间也不同。
修改方法
1.用全局变量定义
#include <stdio.h>
int a,b;
void _swap()
{
int temp=a;
a=b;
b=temp;
}
int main(void)
{
a=5,b=10;
_swap();
printf("a=%d b=%d",a,b);
return 0;
}
//运行结果为a=10,b=5。
2.指针
#include <stdio.h>
void _swap(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;
}
int main()
{
int a=5,b=10;
_swap(&a,&b);
printf("a=%d b=%d\n",a,b);
return 0;
}
//运行结果为a=10,b=5。