黑马程序员-------C语言----指针做函数参数
2015-09-14 19:48
337 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
看能不能改变传入的变量的值,主要看函数内能不能获得被传入变量的地址
修改不了外面a的值,获取不到a的地址,因为是值传递
获取不到p的地址,但是可以获取到p里面存储的地址,所以无法改变p的值,可以改变p里面存储的地址指向的内存里的值
可以改变a的值,因为函数获取到了a的地址,所以可以改变
不可以改变pp1的值,以为外面的pp1和函数里形参pp是同一级别的,pp1只能把它存储的指针的地址传给pp
int *p;要想改变p的值,传递的时候要传p的地址 func(&p)
可以改变a的值,但需要把a的地址赋给一个指针,然后把这个指针的地址传进去, 在函数里需要解引用2次才能获得a的值
看能不能改变传入的变量的值,主要看函数内能不能获得被传入变量的地址
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的值
相关文章推荐
- C++中不能被声明为虚函数的函数
- C++Primer第五版 5.4.2节练习
- 区分接口继承和实现继承(Effective C++_34)
- C++,C程序设计入门——《高质量程序设计第4章》
- C++Primer第五版 5.4.1节练习
- C++开发中指针易错点
- C++Primer第五版 5.3.2节练习
- 黑马程序员-------C语言----const修饰符
- C++Primer第五版 5.3.1节练习
- A very hard mathematic problem
- 避免遮掩继承而来的名称(Effective C++_33)
- C++Primer第五版 5.2节练习
- C++Primer第五版 5.1节练习
- 24.c++-lib文件简述
- C++一个一个Hwd类库
- C++ Primer学习总结_1_开始
- AVL平衡树的c++实现
- 时间戳转日期的算法(C语言实现)
- C语言中将结构体写入文件
- C/C++语言中const的用法