函数传值
一、没法改变值的方式:
一个变量拷贝到另一个变量, 这种形式的函数调用被称为: 传值调用
局部变量的生命周期在函数的运行期间会一直存在.
void Increment(int a)//假设一个 x(只是为了验证实参会被映射到形参这件事情),a的值会被拷贝到x
{a = a + 1; //1. x = x + 1 值为11 //a映射到x, a的值拷贝到x//2.执行完毕后Increment()函数在内存上的栈针空间被清除,继续执行main函数中的printf语句printf("Address of variable a in increment = %d\n", &a);
}int main(int argc, const char* argv[])
{int a;a = 10;Increment(a); printf("Address of variable a in main = %d\n", &a);printf("a = %d", a);
}
二、可以改变值的方式(传引用):
传变量的地址--> 解引用并且做一些操作 就叫做传引用(用指针传值的方式)
传引用的好处: 可以节省内存空间
void Increment(int *p)
{*p=(*p)+1;
}int main(int argc, const char* argv[])
{int a;a = 10;Increment(&a);printf("a = %d", a);
}
程序一开始执行之后调用到内存,中的执行步骤: 堆和栈的概念: