認識C 21 指標

2021-10-09 01:45:05 字數 1307 閱讀 5906

語法:資料型別 指標名稱*

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...