指针做函数参数的本质.
1>普通参数---是值传递
#include <stdio.h>
int text(int x);
int main()
{
int a = 10;
int c = text(a);
printf("c===%d---a=====%d\n",c,a);
return 0;
}
int text(int x)
{
// int x = a;
return x+10+10000;
}
2>指针做参数----仍然是值传递 只是这个值是一个地址
#include <stdio.h>
int text(int *x);
int main()
{
int a = 10;
printf("~~~~~%p----\n",&a);
int c = text(&a);
printf("c===%d---a=====%d\n",c,a);
return 0;
}
int text(int *x)
{
//int *x = &a;
printf("%p----\n",&x);//函数中开辟的指针变量自己的地址
printf("~~~~~~%p----\n",x);//函数中开辟的指针变量指向的空间的地址(&a)
*x = *x +10;
return *x;
}
|
|