您的位置:首页 > 编程语言 > C语言/C++

黑马程序员-------C语言----指针做函数参数

2015-09-14 19:48 337 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

看能不能改变传入的变量的值,主要看函数内能不能获得被传入变量的地址

int func(int a)
{
a = 3;
}
int a;
func(a);


修改不了外面a的值,获取不到a的地址,因为是值传递

int func(int *p)
{
*p = 1;
}
int *p ;
func(p);


获取不到p的地址,但是可以获取到p里面存储的地址,所以无法改变p的值,可以改变p里面存储的地址指向的内存里的值

int func(int *p)
{
*p = 1;
}
int a = 0;
func(&a);


可以改变a的值,因为函数获取到了a的地址,所以可以改变

int func(int **pp)
{

}
int **pp1;
func(pp1);


不可以改变pp1的值,以为外面的pp1和函数里形参pp是同一级别的,pp1只能把它存储的指针的地址传给pp

int *p;要想改变p的值,传递的时候要传p的地址 func(&p)

int a;
p=&a;
func(&p),


可以改变a的值,但需要把a的地址赋给一个指针,然后把这个指针的地址传进去, 在函数里需要解引用2次才能获得a的值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: