C語言 指標 隨記(1)

2021-09-25 19:04:16 字數 1217 閱讀 6717

指標變數的定義

型別名 * 指標變數名;

型別名:可以是任意型別(包括void), 也稱基型別;

p = &i;讀作:p指向i;

如果: p指向i,那麼*p就是i;

*p:以p中所儲存的內容作為起始位址,

以p的基型別所佔位元組數作為偏移量,訪問此空間。

指標傳參:

在被調函式中,通過對形參指標的間接訪問,

可以改變主調函式中實參指標所指向的變數的值。

例子:

void swap(int* pa, int* pb)

////void swapcpp(int& a, int&b)

//int main()

a == &a[0];

陣列名代表陣列首元素的位址;

如果int a[10];

int* p = a;

則a[i] == *(a + i) == p[i] == *(p + i);

3[a] == a[3];

陣列名取位址 + 1,跳過整個陣列;

&a + 1

p = a;

p + n跳過幾個位元組(sizeof(p的基型別))*n;

例如:int main2()

int (*p)(int, int);

函式名即函式入口位址;

p = add;

p(4, 5) == 9;

函式指標用途:

主要作為其他函式的引數,將乙個可變的功能傳遞給被調函式,

以提高被調函式的通用性。

返回指標的函式

型別名* 函式名(形參列表);

下面是錯誤示例:

int* fn()

int* fn()

; return a + 5;

}

野(瘋)指標:如果乙個指標所指向的空間是無效空間,

那麼他就是乙個野指標.

函式返回指標變數時,我們要保證所返回的位址所對應的空間,

在主調函式中依然是有效的(依舊在其生存週期中)。

可行示例:

int* fn()

int g = 9;

int* fn()

int* fn(int a[10])

int* fn()

指標陣列:是個陣列,陣列每個元素是個指標。

int* a[10];

C語言隨記 指標運用

下面是一列宣告 int p 返回值為int的函式 int p 3 int型陣列 int p 返回值為 乙個int型指標的指標 的函式 int p 返回值為int的函式指標 int p 6 指向 int型陣列 的指標 陣列指標 int p 返回值為 int型指標 的函式 int p 6 指向 返回值為...

C語言隨記

1.c11 c語言新標準 2.表示系統自帶的庫,也可寫成 h 表示使用者自定義的庫 3.main函式是c語言的程式入口,現在大多為int main 而不是void main 4.記憶裡的c語言新特性 5.原始檔 通過編輯器建立的檔案,包含源 通常是.c檔案 6.c語言程式 編輯程式 c或.cpp 編...

《C和指標》隨記

前陣子花兩周時間又把 c和指標 過了一遍,陸陸續續做了些筆記,現總結如下。1.eof是乙個int型數值。2.去除某段 將其注釋掉不是乙個好選擇,更高效 安全的辦法是使用 if endf if 0 statements endif3.在c語言中,陣列引數是以引用形式進行傳遞的,也就是傳址呼叫,而標量和...