指针变量的赋值与引用&&二重指针
2018-02-13 13:13
267 查看
研究问题:
函数参数问题(一级指针与二级指针)?区分实参与值参?指针变量的赋值和做函数的参数??
指针到底是变量,还是地址???
指针变量需要另外开辟内存存储?
要点:
http://blog.chinaunix.net/uid-20361370-id-1962457.html指针变量有时也可以简称为”指针”(大多数情况下),它是存放它所指向的变量的地址的变量. 那么,既然它本身也是一个变量,那就肯定也需要开辟一块块空间来存放它本身,这就是二级指针的概念了。
“指针”和”地址”到底相不相等, 在不同的语义环境中,结论是不同的。
指针变量的值就是某个变量的地址,无需另外开辟内存存储,指针就是按照指针变量的值(某个变量的地址)从而找到存储单元中的内容!!
同理,二级指针、多级指针就是按照上一级指针所指向的地址来寻址查找存储单元中的内容!!
截图展示区:
1.#include<stdio.h> #include<malloc.h> void myMalloc(char **s) { *s=(char *) malloc(100);//S指向的是P的地址,所以改变了P所指的内存单元. } int main() { char *p=NULL; myMalloc(&p); //这里的p可以得到正确的值了 if(p) free(p); }
形参:出现在函数定义中,在整个函数体内都可以使用,实参出现在主调函数中,形参和实参的功能是作数据传送。
值参:只传递数值,在过程(函数)中对之所进行的改动,不会造成原始变量值的改变. 与之相对的是 地址参数,传的是变量地址,所以在函数中的任何改动都会影响到主函数的实际参数。
2. 指针引用与二级指针
#include<stdio.h> int f1(int *&q){ //f1(int *q) *&q=(int *)0xEEEEEEEE; //q=(int *)0xEEEEEEEE; printf("传入指针引用的形参\n"); return 0; } int f2(int **q){ *q=(int *)0xFFFFFFFF; printf("传入指针地址的形参\n"); return 0; } int main() { int i=10; int *p=&i;//相当于int *p;p=&i; printf("%#p\n",p); f1(p); printf("%#p\n",p); f2(&p); printf("%#p\n",p); return 0; }
运行结果:
3. 指针变量的赋值和做函数的参数
4. 指针变量需要另外开辟内存存储?
#include<stdio.h> //一级指针,二级指针,常量 int main() { int *p; int **t; int i=10; p=&i; t=&p; printf("%p\n",p); printf("%p\n",&i); printf("%p\n",*t); }
运行结果:
PS:地址都一样,说明没有另外开辟内存来存储指针变量!!!只是把指针指向了一个内存块而已,自身并不需要内存单元存储!!
相关文章推荐
- C++ int & *p; //不能建立指向引用的指针;int *a; int * & p=a; //正确,指针变量的引用
- int & *p; //不能建立指向引用的指针;int *a; int * & p=a; //正确,指针变量的引用
- int & *p; //不能建立指向引用的指针;int *a; int * & p=a; //正确,指针变量的引用
- C++引用指针吉林快三开奖网源码出售 & 构造函数
- int *pa(指针)和int *&pa(指针的引用)的区别
- 二叉树创建函数中一定要用指针的引用void createtree(BiTree *&T)或者用指针的指针void createtree(BiTree **T)
- 指针作参数,指针变量的引用问题
- _指针和引用(int*、int&、int*&、int&*、int**)
- c++ 指针,引用,* 与&
- 成员指针和成员指针逆向引用运算符".*"
- C语言的指针*和引用&
- php 中 实例化对象的 赋值及 指针引用
- C++引用 & C 指针
- C/C++指针的指针(**p)和指针的引用(*&)使用案例分析
- int *pa(指针)和int *&pa(指针的引用)的区别
- 引用的作用&引用与指针的区别
- [C++基础]019_指针和引用(int*、int&、int*&、int&*、int**)
- Android For JNI(三)——C的指针,指针变量,指针常见错误,值传递,引用传递,返回多个值
- c的指针*和引用&
- C语言笔记->通过指针引用数组