2.指针与函数传参
(1)普通变量作为函数形参
void func1(int b)
{
// 在函数内部,形参b的值等于实参a
printf("b = %d.\n", b);
printf("in func1, &b = %p.\n", &b);
}
int main(void)
{
int a = 4;
printf("&a = %p.\n", &a); // &a = 0x7ffc3826c2f4.
func1(a); //b = 4, in func1, &b = 0x7ffc3826c2dc.
return 0;
}
->函数传参时,普通变量作为参数时,形参和实参名字可以相同也可以不同,实际上都是用实参来替代相对应的形参的。
->在子函数内部,形参的值等于实参。原因是函数调用时把实参的值赋值给了形参。
(2)数组作为函数形参
void func2(int a[])
{
printf("sizeof(a) = %d.\n", sizeof(a));
printf("in func2, a = %p.\n", a);
}
int main(void)
{
int a[5];
printf("a = %p.\n", a); //a = 0x7ffc5e60ef00.
func2(a); //sizeof(a) = 8. in func2, a = 0x7ffc5e60ef00.