举例一:
.交换两个实参的值
(对比一下两段程序)程序段一:
void swep(char m, char n)
{
char temp;
printf("交换前:m=%d, n =%d\n", m , n);
temp = m;
m = n;
n = temp;
printf("交换后:m=%d, n =%d\n", m , n);
}
int main()
{
char a =10, b =5;
printf("交换前:a=%d, b =%d\n", a , b);
swep(a, b);
printf("交换后:a=%d, b =%d\n", a , b);
return 0;
}
++++++++++++++++++++++++++++++++++++++
输出结果:
交换前:a= 10,b=5
交换前:m=10,n=5
交换后:m= 5,n=10
交换后:a= 10,b=5
程序二:
void swep(char* m, char* n)
{
printf("交换前:*m=%d, *n =%d\n", *m , *n);
char temp;
temp = *m;
*m = *n;
*n = temp;
printf("交换后:*m=%d, *n =%d\n", *m , *n);
}
int main()
{
char a =10, b =5;
printf("交换前:a=%d, b =%d\n", a , b);
swep(&a, &b);
printf("交换后:a=%d, b =%d\n", a , b);
return 0;
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
输出结果:
交换前:a= 10,b=5
交换前:m=10,n=5
交换后:m= 5,n=10
交换后:a= 5,b=10
举例二:(一个函数返回多个值)
void sumAndminus(int m,int n, int *_sum, int* _minus)
{
* _sum = m+ n;
* _minus = m - n;
}
int main()
{
int a= 10, b=5;
int sum, minus;
sumAndminus(a, b , &sum, &minus)
printf("sum= %d , minus = %d", sum , minus)
return 0;
}
声明一个指针变量int *pa;的过程是在内存中开辟了一块存储位置的过程,int *pa是声明的一个地址,接收的值为地址,如&a(int a = 10)。