- 取地址在CPU的寄存器产生,不占据内存
- 地址由计算器总线,地址作为常量不消耗内存
- 指针 存储不同的地址,间接赋值
- 空类型指针 void* 类型指针 不可以取数据 或者修改数据 需要进行强制类型转换
int num = 10;void *p = #std::cout << *(static_cast<int*>( p)) << std::endl;
- 空指针 nullptr 避免指针没有存储地址,用于指针的初始化
int num = 10;q = #std::cout << *q << std::endl;
- 指针都占据 四个字节
补充
- #define 替换的标识 原来的标志
- typedef
数据交换
#include <iostream>void swap(int &a,int &b){a ^= b;b ^= a;a ^= b;
}
int main(){int num1 = 10;int num2 = 20;swap(num1,num2);std::cout << num1 << std::endl;std::cout << num2 << std::endl;
}
输入输出指针
- 使用%p 用于接收和输出地址,按照地址打印