C/C++指针 引用
来源:互联网 发布:java服务器硬件配置 编辑:程序博客网 时间:2024/06/15 21:01
通过代码+注释来说明问题
#include <stdio.h>struct box {int a;int c;box(int i,int j){a=i;c=j;}};void func1();void func2(int *a,int *b);void func3(int *p);void func4(int &c);void func5(int *&p);void main(){func1();int a=111;int b=1234;func2(&a,&b);// & 此时为取地址printf("%d %d\n",a,b);int *p=NULL;func3(p);printf("%p\n",p);int c=1111;func4(c);printf("%d\n",c);int *q=NULL;func5(q);printf("%p\n",q);}void func1(){int num=100;int block=1000;box bBOX(3,3);// 指针是一个变量,指针变量p中存储的是(指向num代表的内存单元的)地址int *p=#// 引用和原来的变量num是一个东西,r和num都指的是num所代表的存储单元int &r1=num;box &r2=bBOX;// 指针可以不用初始化,但引用必须初始化int *ptrA;// 指针可以为NULL,但是引用不可以为空int *ptrB=NULL;// 有const指针,但没有const引用// 指针可以有多级指针,但是引用只能有一级int *p1 = #int **p2 = &p1;int ***p3 = &p2;// 指针的值可以改变,但是引用是不可以改变的p=█// sizeof(指针)得到的是指针的大小,sizeof(引用)得到的是所指变量(对象)的大小printf("%d %d %d \n",sizeof(p),sizeof(r1),sizeof(r2));// 指针和引用的自增(++)意义不同,引用根本不能进行自加操作p1++;p2++;p3++;// & 一定要将 引用 和 取地址 区分开// }// 参数指针型形参变量,但这是一种拷贝,注意函数体内// 修改的是指针所指的空间,不是指针本身的空间,// 所以不要认为这不是一种拷贝void func2(int *a,int *b){int c; c = *a;*a = *b;*b = c;}// 参数指针型形参变量,但这是一种拷贝void func3(int *p){int a=100;p=&a;}// // 参数引用型(普通类型)形参变量void func4(int &c){int a=100;c=a;}// 参数引用型(指针)形参变量,传递的是指针的本身,不是临时拷贝void func5(int *&p)// 得到(取指针p的地址的)变量,操作的是存储指针变量的空间{int a=100;p=&a;}
0 0
- C |java 指针|引用
- 【c++】指针与引用
- C/C++指针 引用
- 【C++】指针与引用
- C++【引用与指针】
- c++-引用函数指针
- 指针与引用c
- 引用,指针,C++,java
- c++:引用和指针
- C++引用 & C 指针
- 【C++】指针与引用
- [C] 指针参数的引用
- 11、C++const指针 引用
- c/c++指针的引用
- c指针和c++引用
- c语言编程---指针、引用
- c/c++ 引用和指针
- c的指针*和引用&
- Android Studio 个性化设置
- 三十九.触摸屏
- 想分享给各位的故事【如果你想成为很厉害很厉害的人】
- C++标准库---逆转元素reverse()&reverse_copy()
- Android 编辑联系人,增、删、改代码
- C/C++指针 引用
- SWT/jface 设置 label 背景透明
- Android 用户偏好设置SharedPreference
- 给UIView加渐变色背景
- Ajax方法自定义重写
- 今天终于回来了
- laravel 表单
- 项目经理应该把30%的时间用在编程上
- three.js 源码注释(四十九)Material /MeshNormalMaterial.js