C语言中函数参数的传递

//按值传递
void EXch(int a, int b)
{
    
    
	int tem;
	tem = a;
	a = b;
	b = tem;
	printf("a=%d,b=%d\n", a, b);
}

void main()
{
    
    
	int a = 3, b = 4;
	EXch(a,b);
	printf("a=%d,b=%d\n", a, b);//a,b的值不会被改变
}
//按地址传递
void EXch(int *a, int *b)
{
    
    
	int tem;
	tem = *a;
	*a = *b;
	*b = tem;
	printf("a=%d,b=%d\n", *a, *b);
}

void main()
{
    
    
	int a = 3, b = 4;
	EXch(&a,&b);
	printf("a=%d,b=%d\n", a, b);//a,b的值会被改变
}
vs2015 中 C语言不能按引用传递,会报错
//按引用传递
void EXCH(int &a, int &b)
{
    
    
	int tem = a;
	a = b;
	b = tem;
	printf("a=%d,b=%d\n", a, b);
}

void main()
{
    
    
	int a = 4, b = 5;
	EXCH(a, b);
	printf("a=%d,b=%d\n", a, b);
}

猜你喜欢

转载自blog.csdn.net/qq_37422050/article/details/105001754