引用和指针是C++语言中的复合类型(compound type)
复合类型是指基于其他类型定义的类型
类型说明符 &变量名=对象指针(pointer)是指向另外一种类型的复合类型,实现对其他对象的间接访问
与引用的区别:
定义:类型说明符 *变量名
int *a, *b 其中a和b都是指向int型对象的指针赋值:&被指向变量
int a = 1; int *p = &a; 其中指针p存放了变量a的地址(p是指向变量a的指针)解引用:*指针名
解引用符:*
例如:
int val = 42;
int *p = &val;
cout << *p; // 输出42
*p表示指针指向对象的值
用于访问指针指向的对象
仅适用于确实指向了某个对象的有效指针
空指针(null pointer)不指向任何对象
nullptr来初始化指针int *p = nullptr; 等价于 int *p = 0;void*指针:可用于存放任意对象的地址
指针的指针:*的个数可区分指针的级别
int *p; int **p1=&p;,p指向一个int类型的数,p1指向一个int类型的指针指针是一个对象,因此存在指针的引用