深蓝学院C++笔记——第三章对象与基本类型之复合类型从指针到引用
倔强的补着技术债!
#include <iostream>
int main()
{
int x = 1;
int y = 2;
chae z = 33;
int* p1 = &x;//定义了一个指针,指向了变量x的首地址,这里的*代表p1是一个指针
p1 = &y;//指针p指向变量y的首地址
char* p2 = &z;
std::cout << *p1 << std::endl;//这里的*代表解引用的意思,从p2指向的首地址开始读4个字节
std::cout << *p2 << std::endl;//从p2指向的首地址开始读1个字节,这就是为什么定义指针时要定义类型的原因,类型不同,读取的字节长度不同
std::cout << sizeof(p1) << std::endl;
std::cout << sizeof(p2) << std::endl;
}
- nullptr
是一个特殊的对象,表示空指针,它的类型是指针,且可以隐式的转换成任意类型的指针
- 指针和布尔类型的隐式转换
非空指针可以转换为true,空指针可以转换为false
- 指针的引用
#include <iostream>
int main()
{
int x = 1;
int* p = &x;
int* ref = p;//定义了一个int*类型的引用ref
}