計算機実習 I

第九回 (2014 年 6 月 5 日)

ポインタの基礎

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

Martin J. Dürst

AGU

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

今日の予定

ミニテスト

前回の演習問題について

未提出 (またはエラー): 08A1: 2人、A2: 2人、08B1: 3人、08C1: 9人、08C2: 31人 (完成: 59)

08C2 (温度のクラス) のメンバ変数の選択

ポインタの用途

メモリの仕組み

メモリの仕組みを調べる

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

ポインタの型

 

ポインタの宣言・定義

例:

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 の用紙の最後の締め切りは次回の演習開始)

 

次回の準備