这里不写什么概念,直接上代码
#include<stdio.h>
int Change(int a)
{
a = 1;
return a;
}
int main()
{
int a = 0;
printf("没有改变前的值:%d\n", a);
Change(a);
printf("改变后的值:%d\n",a);
return 0;
}
没有改变前的值:0
改变后的值:0
总结:
Change(a)为形参,
a=1实参
实参只是形参的零时的拷贝,实参的改变不会影响实参!!!
(在学习结构体与链表的时候非常重要)
那么如何解决
指针 (传值调用)
#include<stdio.h>
int Change(int *a)
{
*a = 1;
return *a;
}
int main()
{
int a = 0;
printf("没有改变前的值:%d\n", a);
Change(&a);
printf("改变后的值:%d\n",a);
return 0;
}
没有改变前的值:0
改变后的值:1