- 取地址在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 用于接收和輸出地址,按照地址打印