文件總結19 C語言中的指標

2021-08-13 04:15:43 字數 2309 閱讀 5820

儲存位址的,位址是乙個數字。

左值代表空間!右值代表空間裡面的內容!

1、定義乙個指標變數p,型別是int*。

2、p指向乙個int型資料

int *p;

指標的繫結

p = &a;

指標的解引用

*p = 23;

int *p1 = &a; //定義指標的同時並且初始

2、const 關鍵字

const 修飾的變數是常數,不可更改,只能初始化一次

const int a = 23;

a = 1;

//error: assignment of read-only variable 『a』

const int b;

b = 23;

//error: assignment of read-only variable 『b』

3、強制型別轉換

int * p = (int *)&a;

const 修飾唯讀變數

const int a = 10;

int arr[a] = {};

//error: variable-sized object may not be initialized

//原因1、const 修飾唯讀變數.

2、在c++裡面對const進行了擴充套件,表示常量

//巨集定義和const?在修飾函式引數時,表示輸入型引數。

const與指標,就近原則

int const *p1; //error:assignment of read-only location 『*p1』

const int *p2; //p2,p2所指向的資料(int) 等同於p1

int * const p3; //野指標,修飾p3,p3不可改變,所指向的內容可改變

const int * const p4; //必須定義時,同時初始化

int *p;

野指標危害:

1、直接指向核心區

2、指向可用也沒有別的資料的區域

3、最嚴重,可用但有別的資料

null專用於指標的初始化(寫0)

void fun1(int a)

函式的輸出型引數

void func2(int

*p)int main(void)

#include

void swap(int

**x, int

**y)

int main(void)

int *arr <=> int arr <=> int arr[數字]

陣列名作為函式引數退化為乙個指標

子函式內部改變了原陣列裡面的內容

堆記憶體也是記憶體的一種,需要程式設計師自己手動申請malloc,手動釋放

編譯器不會自動**,申請的記憶體伴隨整個程式

流程:申請,判斷成功,初始化,使用,釋放,指標設定為空

注意:malloc申請的空間,預設是有最小分配的

#include

#include

#include

int * shenqing_memory(int num)

void arr_show(int *p, int lenth)

void set_value(int *p, int lenth)

void func_arr(int *p, int lenth)}}

for(i=0;iprintf(" %d",p[i]);

}printf("\n");

}int main(void)

*/

p = shenqing_memory(num);

// memset(p, 0, num * sizeof(int));

set_value(p,num);

arr_show(p,num);

func_arr(p,num);

if(null != p)

}

二維陣列的變數名是首元素首位址

&arr[0]代表第一維陣列的首元素首位址

&arr[0][0]代表陣列的第二維陣列是首元素首位址

#include

int main (void)

; int (*p)[3];

int i = 0, j = 0;

p = arr;

for(i=0; i<2; i++)

}

19 C語言 結構體

c 陣列允許定義可儲存相同型別資料項的變數,結構是 c 程式設計中另一種使用者自定義的可用的資料型別,它允許您儲存不同型別的資料項。結構用於表示一條記錄,假設您想要跟蹤圖書館中書本的動態,您可能需要跟蹤每本書的下列屬性 為了定義結構,您必須使用 struct 語句。struct 語句定義了乙個包含多...

C語言中野指標總結

野指標是什麼?野指標是如何產生的?有什麼危害?如何避免野指標?是什麼 野指標是什麼?野指標,就是指標指向的位置是不可知的 隨機的 不正確的 沒有明確限制的 很可能觸發執行時段錯誤 sgmentation fault 例如 int p 區域性變數,分配在棧上,棧反覆被使用,所以 值是隨機的 print...

C 語言中的指標

指標是 c 語言中的精華,正確靈活的運用指標,可以表示複雜的資料結構,動態分配記憶體,方便使用字串和陣列,呼叫函式返回多結果,直接處理記憶體單元等等。位址就是記憶體的編號,如果拿旅店作為記憶體,那麼每個房間號其實就相當於位址了。當程式編譯時,就會對變數分配記憶體單元,分配時按變數型別分配大小。經過編...