語法:資料型別 指標名稱*
int* p;
指標和變數建立聯絡
//宣告乙個變數
int a = 10;
//獲取變數a的位址賦值給p
p = &a;
解引用 可以用來獲取或設定指標指向的變數的值
//*p 解引用 通過解引用獲取變數a的值
cout << *p << endl;
//通過解引用直接操作記憶體修改變數a的值
*p = 100;
cout << a << endl;
指標型別占用的記憶體空間
windows下32位作業系統占用4個位元組,64位作業系統占用8個位元組,不區分資料型別
cout << sizeof(p) << endl;
cout << sizeof(char*) << endl;
cout << sizeof(string*) << endl;
cout << sizeof(float*) << endl;
cout << sizeof(double*) << endl;
int* p1 = null;//空指標 初始化p1
野指標:指標指向非法的記憶體空間,也不能被訪問
int* p2 = (int*)0x1100;//隨便給了個位址
const修飾指標(常量指標)
int a2 = 10;
int b2 = 10;
const int* p3 = &a2;
//*p3 = 20; 錯誤 :指標指向的值不能修改
p3 = &b2;//正確 :指標的指向可以修改
const修飾常量(指標常量)
int* const p4 = &a2;
*p4 = 1000;
cout << *p4 << endl;//正確 指標指向的值可以修改
// p4 = $b2; 錯誤,指標常量的指向不能修改
const既修飾指標又修飾常量
const int* const p5 = &a2;//指標的指向和指標指向的值都不能修改
總體了解C (21 指標運算 22 多維陣列)
21.指標運算 在c 中,指標運算可以被使用在被標為unsafe修飾符的方法裡。當指標指向乙個可被垃圾收集的物件的時候,編譯器強迫使用fixed關鍵字去固定物件。這是因為垃圾收集器是靠移動物件來 記憶體的。但是如果當你使用原始指標時,它所指的物件被移動了,那你的指標將指向垃圾。我認為這兒用unsaf...
C語言認識(二)指標
指標 int main p認為是一級指標 p存的是a的位址 指標又稱為間接訪問符。typedef查詢一下。基本變數可以進行混合運算。混合型別 陣列 指標等 基本型別不能和混合型別進行運算。無論是 int p 還是 char p1 double p2 指標的大小是固定的,由cpu大小決定。32bit電...
C 21 引用和指標
一般說到誰和誰怎麼樣,要麼說兩者的相似點,要麼兩者的區別,這裡我們也要說二者的區別和聯絡,同時,也不僅僅是區別和聯絡這麼簡單,因為你可能會發現在變數賦值,函式傳參這兩點還是有很多值得品一品的。最直觀的賦值方面的區別 首先我們先說二者的區別和聯絡。int a 1 int p a int a 1 int...