指针 引用 区别和用法,指针与引用有什么区别

1,指针与引用有什么区别C语言里面有指针没有引用,C++有指针和引用 。引用在底层实现上其实就是const指针,即指针常量,指向的地址不能变(指针本身不能改变),但是指向的地址的值可以改变 , 改变引用就是改变指向地址的值,在使用时不用在前面加*号 。所以可以说引用是一种特殊的指针 。1、引用是变量的别名,,指针是变量的地址 , 指针变量存放着那个变量的地址2、指针是可以做算术运算的,引用不行3、指针可以为null,也有常指针,二维指针 , 引用没这些3、其实就是变量名与地址之间的区别,两个除了用法上有些相似 , 其他没什么太大关系 。网上好多的,你查下
2,引用和指针解释一下int *const 和 const int*的区别:int *const: const修饰的是int*这个指针本身,所以是指针本身的值不能变,但是指针指向的值可以变const int*: const修饰的是int*指针指向的值,指针本身可以变,但指针指向的值不能变你可以把你的函数的定义和函数的调用的地方发出来 , 这样才好分析 。怎么了,程序没问题啊 。第一个程序中test的参数是一个int变量的引用 , 即test中怎么改动,外部被引用int变量也会怎么改动 , 所以两个输出一样;第二个程序中test参数是一个指向int变量类型的指针的引用,即传入的参数是一个指针,在test外部虽然定义p是空指针,但在test内部给p传入了值 , 再执行后边的if语句判断,p肯定就不是空指针了,,
3,面向对象C类中声明成员属性时指针和引用的区别和用法以及如NULL;//一般直接初始化为NULL,你也可以通过构造方法给传进来个参数 } //A ma这个可以不用初始化了;可以连用好几个但是.不行,即可以p-> A ma; &nbsp,然后就不报错了 这个没看明白呀!(指针在使用前,一定要初始化;a.function(); c , 让它指向一个真实的对象;&nbsp,不让程序就崩溃了) &nbsp:指向在对象所在的地址; (*p); &nbsp , 所以 后面是&nbsp,可以直接用 //A& ra; A中的mrA,要如何初始化 , 还可以更改其所指向的地址,改为指向其他对象; A& ra(a) pa = ra; A* pa.ma与p->ma有什么区别?这个在最终的用途上是没有区别的,所有对引用的操作 , 都会影响原来的对象 。使用时直接使用&nbspclass &nbsp,但是要在构造函数中实例指针的对 &nbsp,声明时可以不定义 , 而后;这时(*p);引用;pa->mpB->pa->&nbsp?和B中的A& ra的初始化方法一样,都是使用初始化列表初始化; ma 我发现->&nbsp,都是调用对象的ma成员变量.map 是个指向对象的指针 所以是p->即可指针;这个需要在初始化列表中初始化&nbsp , 明确它所指向的对象,而且以后就不可以更改了;&nbsp:ra(a) Bpublic: B(A& a); &nbsp:是给一个对象起一个别名,在声明的时候就得定义,只是写法不一样(*p) 这个表示的是一个对象【指针 引用 区别和用法,指针与引用有什么区别】

    推荐阅读