計算機実習 I

第九回 (2015 年 6 月 4 日)

ポインタの基礎

http://www.sw.it.aoyama.ac.jp/2015/CP1/lecture9.html

Martin J. Dürst

AGU

© 2005-15 Martin J. Dürst 青山学院大学

今日の予定

ミニテスト

情テクソフトボール大会

参加チーム申し込み締め切り: 6月8日 (月)

C 言語の応用: Apache httpd

Apache feather logo

前回の演習結果

08A1 08A2 08B1 08C1 08C2
100点 88 69 59 42 23
60点 6 24 33 40 55
エラー - 1 1 5 2
未提出 - - 1 9 14

08C2 について

[昨年度資料につき削除]

ポインタの用途

メモリの仕組み

 

メモリの仕組みの調査

ポインタの演算子 (&/*)

 

ポインタの型

 

ポインタの宣言・定義

(http://www.cdecl.org/ も参照)

ポインタの定義の例

int *pi; // int へのポインタ
char *pc; // 文字へのポインタ
// 文字列 (の先頭) を指すこともある
int **ppi; // int へのポインタへのポインタ
char *pa[5]; // char *(pa[5])
// 長さ 5 の (文字へのポインタの) 配列
char (*pb)[5]; // 5 文字の配列へのポインタ
char c, *pc, *pa[5], (*pb)[5]; // char だけ共通

 

ポインタの演算 (+/-)

 

配列とポインタ

実際、C の場合には配列とポインタは殆ど同じ
(例外: 配列が定義された関数内の配列そのものへの代入が禁止、sizeof の結果)

配列とポインタのメモリ配置の実例

 

演習問題について

注: 全問題必修、全問日曜日締め切り

09A2, 09A3, 09C2: プログラムをシステムに提出、かつ用紙を先生に提出
(09C2 の用紙の最後の締め切りは次回の演習開始)

 

次回の準備