C语言-函数指针,指针与函数传参_c语言指针函数传参


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.
      

你可能感兴趣的:(程序员,c语言,开发语言)