構造体と共用体.

Slides:



Advertisements
Similar presentations
構造体 構造体とは? 複数のデータをパックしたもの。 新しい “ 型 “ として使用できる. 構造体 キーワード struct strcut は構造体を宣言する命令。 struct { double x,y; }a,b,c; ↑ ここまでが宣 言 ← この形式で、構造体 a,b,c, を定 義.
Advertisements

プログラミング入門2 芝浦工業大学情報工学科青木 義満 第11回構造体. プログラミング入門2 2 構造体 5 人分のサッカー選手データ 全てのデータを関数に渡して,処理する場合 char name[5][256]; int assist[5]; int score[5]; void func( char.
第6章 ポインタ ポインタが分からずにC言語を投げ出す人が数多くいます。 その半面、使いこなせば強力な武器となります。 しっかりと学習していきましょう C 言語 最難関文法 C 言語 最難関文法 1 第 6 章 ポインタ.
C 言語講座 第 7 回 ポインター. メモリとアドレス(ポインターの前 に) コンピュータのメモリには 1 バイトずつ 0 番地、 1 番地、 2 番地・・・というように 住所が割り当てられている この住所をアドレスという。 メモリはデータをしまうもので それを引き出すためには メモリに番号(アドレス)を振っておけばよいな.
アルゴリズムとデータ構造 第2回 線形リスト(復習).
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
第12回新しい型と構造体.
第13回構造体.
データ構造とアルゴリズム 第10回 mallocとfree
第12回構造体.
プログラミング入門2 ポインタについて補足 構造体 第11回 芝浦工業大学情報工学科 青木 義満、篠埜 功
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
アルゴリズムとデータ構造 2011年6月13日
構造体.
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
情報処理Ⅱ 2007年12月10日(月).
ファイル操作と文字列の利用.
第3回 配列,構造体,ポインタ ~ データ構造について学ぶための基礎~
プログラミング 3 構造体(1).
第10回 プログラミングⅡ 第10回
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
プログラムの制御構造 選択・繰り返し.
関数とポインタ 値呼び出しと参照呼び出し swapのいろいろ 関数引数 数値積分
東京工科大学 コンピュータサイエンス学部 亀田弘之
関数の定義.
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
精密工学科プログラミング基礎 第10回資料 (12/18実施)
2005年度 データ構造とアルゴリズム 第3回 「C言語の復習:再帰的データ構造」
第10章 これはかなり大変な事項!! ~ポインタ~
プログラミング 3 構造体(2).
前回の練習問題.
第7回 プログラミングⅡ 第7回
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
プログラミング入門2 第11回 共用体、列挙体 情報工学科 篠埜 功.
第11回 プログラミングⅡ 第11回
型の compatibility とポインタ演算
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
精密工学科プログラミング基礎Ⅱ 第5回資料 今回の授業で習得してほしいこと: 構造体 (教科書 91 ページ)
データ構造とアルゴリズム 第11回 リスト構造(1)
プログラミング 3 2 次元配列.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
ポインタとポインタを用いた関数定義.
アルゴリズムとデータ構造 2012年6月11日
プログラミング論 ポインタ
アルゴリズムとデータ構造1 2009年6月15日
ネットワーク・プログラミング Cプログラミングの基礎.
プログラミング論 構造体
情報処理Ⅱ 2005年10月28日(金).
プログラミング 4 文字列.
アルゴリズムとデータ構造 2010年6月17日
演算子のオーバーロード.
2005年度 データ構造とアルゴリズム 第2回 「C言語の復習:配列」
プログラミング演習II 2003年11月19日(第6回) 木村巌.
プログラミング演習II 2003年12月10日(第7回) 木村巌.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
マスク合成(のような処理) 出力画像 Out 入力画像1 In1 In1 In2 Out 入力画像2 In
左右反転と180度回転 [0][xsize – 1] [0][0] → i ↓ j [ysize – 1][xsize – 1]
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
C言語講座第5回 2017 構造体.
情報処理Ⅱ 2006年10月27日(金).
プログラミング演習II 2003年10月29日(第2,3回) 木村巌.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング 3 ポインタ(1).
Presentation transcript:

構造体と共用体

Quiz void effect(int); int main(void) { int x=1, *p; p = &x; effect(*p); printf(“%d\n”,x); } void effect(int z) z = 4; void effecp(int *); int main(void) { int x=1, *p; p=&x; effectp(p); printf(“%d\n”,x); } void effectp(int *z) *z = 4;

前回の復習 ポインタ変数の定義 アドレス演算子・間接参照演算子 (代入演算の左辺と右辺では機能が違う!) ポインタ変数を用いた関数定義 なぜアドレス変数と呼ばない? アドレス演算子・間接参照演算子 (代入演算の左辺と右辺では機能が違う!) ポインタ変数を用いた関数定義

構造体・共用体の定義

構造体の例(1) C言語には複素数型がない!→ ならば定義しよう! メンバ変数 .はメンバ参照演算子

構造体の例(2) ちょっと新しい型を定義したという気分に欠ける typedefを使う

構造体のポインタ変数 構造体を値として渡すとメンバ変数の全ての値がコピーして渡されプログラムの実行効率が悪い 構造体のアドレス(ポインタ)を使う

間接メンバ参照演算子 -> (*a).x = a->x (*変数名)はプログラムを見難くする(?)

演算子の優先順位に注意!

共用体(1) 同じような概念のデータで、選択的に一つのデータが使われる場合か、同じデータ の別表現を格納するのに使う w b c h r a type = 1 (円) type = 2 (長方形) type = 3 (三角形)

共用体(2) c c r t r t

練習1: アドレス帳の1ページを表す構造体を定義してみよう。 練習2: アドレス帳の配列を集めてアドレス帳構造体を定義しよう。 練習1: アドレス帳の1ページを表す構造体を定義してみよう。 練習2: アドレス帳の配列を集めてアドレス帳構造体を定義しよう。 1.名前 2.生年月日 3.性別 4.住所 5.コメント .