指针和引用的本质区别

2019-12-09  本文已影响0人  Magic11

常量指针 const int *p 指的是指针p指向的对象不可改变
指针常量 int const *p指的是指针p的值不能改变
引用的底层实现是指针常量


image.png

引用的创建的时候必须初始化,而且需要初始化一个左值(即一个有名字,可取地址的对象)
若初始化的值为常量,则编译器会报错:非常量引用的初始值必须为左值


image.png

指针是有型别的,虽然指针变量的值是一个整数,但是不能将一个整形变量或者一个整形常量直接赋值给指针


image.png
但初始化为0和NULL(#define NULL 0)除外
image.png

void*不具有型别,虽然它能存放对象的地址,但是它不能进行解引用


image.png
image.png

相关资料:
https://www.zhihu.com/question/37608201
https://zhuanlan.zhihu.com/p/93653407

上一篇 下一篇

猜你喜欢

热点阅读