Presentation is loading. Please wait.

Presentation is loading. Please wait.

Pointer 指標 授課老師:蕭志明.

Similar presentations


Presentation on theme: "Pointer 指標 授課老師:蕭志明."— Presentation transcript:

1 Pointer 指標 授課老師:蕭志明

2 指標概說 指 標 是 一 個 用 來 指 示 資 料 存 在 於 記 憶 體 中 的 位 址 標 示 器 .
由 指 標 的 運 用 裡 , 使 我 們 瞭 解 到 資 料 與 位 址 間 的 關 係 , 進 而 對 記 憶 體 配 置 有 很 大 的 幫 助 .

3 指標的基本觀念 在 C 語 言 中 , 若 某 變 數 所 含 的 是 一 個 記 憶 體 位址,此 變 數 稱 為 指 標 變 數。

4 指標宣告的注意事項 ptr 為 指 標 變 數 , ptr 代 表 一 個 位 址 , *ptr 代 表 此 位 址 內 的 資 料 .
ptr 所 指 向 此 位 址 之 變 數 型 態 為 整 數 ( int ) . 指 標 變 數 宣 告 的 關 鍵 字 為 " * " , 而 指 標 變 數 的 資 料 型 態 也 分 為 整 數 ( int ) , 浮 點 數 ( float ) , 字 元 ( char ). "&" 為另一重要符號,"&"為一個特殊運算子,目的為傳回運算元之位址 為什麼scanf() 中之所有引數變數一定要加上"&"符號???……….

5 Example

6 指 標 與 函 數 間 的 關 係 關 於 函 數 呼 叫 的 方 式 中 , Call by value 的 引 數 傳 遞 方 式 , 被 呼 叫 函 數 不 能 直 接 更 改 呼 叫 函 數 中 的 變 數 , 但 如 果 是 以 指 標 當 作 函 數 的 引 數 ( Call by reference ) , 則 上 述 的 狀 況 均 迎 刃 而 解 , 而 且 也 不 受 函 數 返 回 值 ( return ) 只 能 有 一 個 的 影 響 .

7 Example #include < stdio.h > change(x,y) int *x,*y; { int temp;
temp=*x; *x=*y; *y=temp; } void main(void) { int m=3,n=4; printf(" m = %d n= %d \n\n",m,n); change(&m,&n); printf(" m = %d n= %d \n",m,n);

8 指 標 與 陣 列 的 關 係 我 們 可 以 將 指 標 與 陣 列 的 關 係 來 做 一 對 比 . 例 如 : 有 一 整 數 陣 列 名 為 array , 其 陣 列 大 小 為 五 個 , 其 內 容 分 別 是 1,2,3,4,5 . For example: int array[5]={ 1,2,3,4,5 };

9

10

11

12

13 指 標 與 結 構 的 關 係 指標可以指向一個相關之結構變數。如欲由此指標存取結構變數之項目資料時,其格式如下:

14

15 練習 #include < stdio.h > void main(void) { int x=10,z=3; int *y;
z = z + 1; x = x + *y; printf(" x = %d\n", x); printf("*y = %d\n",*y); printf(“z = %d\n", z); y = &x; printf(" y = %x\n", *y); &z = y; printf(" z = %x\n", z); }


Download ppt "Pointer 指標 授課老師:蕭志明."

Similar presentations


Ads by Google