プログラミング 2 静的変数.

Slides:



Advertisements
Similar presentations
山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
Advertisements

プログラミング 関数編 情報科学科. プログラミングにあたって C 言語では、 main 内に処理を記述 1000 行になるような大きなプログラムでは、 プログラム全体が何をしているのかを把握 することが困難になる 他人が見ると非常に理解しにくい 作成者であっても時が経てば内容を忘れて、他 人が見た時と同じ状況になる.
第 11 章 関数について 11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 数学関数の自作.
プログラミング入門2 芝浦工業大学情報工学科青木 義満 第6回関数(2). プログラミング入門2 2 今回の講義内容 関数 配列データの受け渡し ( p.130 ~) 入出力と文字 ( p.198 ~) 文字列の基本 ( p.208 ~)
2001年11月更新 2章 Windowプログラムの構成 Windowsプログラムおよび       PiasTkプログラムの基本構造.
4章 制御の流れ-3.
ISD実習E 2009年6月29日 LISPシステム入門 (第5回) 関数ポインタ eval システム関数.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング入門2 第6回 関数(2) 芝浦工業大学情報工学科 青木 義満
システムプログラミング 第11回 シグナル 情報工学科  篠埜 功.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
記憶クラス 変数をどのような記憶領域に割り当てるかを指定するのが記憶クラス 記憶クラスには、自動変数、静的変数、外部変数などがある。
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月6日、H.16(‘04)] 今日のメニュー 1 前回の課題の復習
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
プログラミング 3 構造体(1).
プログラミング論 関数ポインタ と 応用(qsort)
プログラミング2 関数
プログラミング論 ファイル入出力
独習Java ・ 8.1  例外処理 ・ 8.2  catch ブロックの検索  12月 5日    小笠原 一恵.
情報処理演習 (秋学期・樋口担当) 3回目 10/8 日本工業大学 コンピュータリテラシーII.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
関数の定義.
プログラミング 3 構造体(2).
メモリの準備 メモリには、その準備の方法で2種類ある。 静的変数: コンパイル時にすでにメモリのサイズがわかっているもの。 普通の変数宣言
講義では、Cプログラミングの基本を学び 演習では、やや実践的なプログラミングを通して学ぶ
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
プログラミング言語論 第五回 理工学部 情報システム工学科 新田直也.
アルゴリズムとデータ構造 補足資料5-1 「メモリとポインタ」
プログラミング論 ファイル入出力
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
関数への道.
再帰的手続き.
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
画像処理プログラミング 知的画像処理研究室 M2 小林 佳奈美.
参照されないリテラル 長谷川啓
11: 動的メモリ確保 C プログラミング入門 総機1 (月1) Linux にログインし、以下の講義ページ を開いておくこと
プログラミング 3 2 次元配列.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
C#プログラミング実習 第3回.
ポインタとポインタを用いた関数定義.
11.1 標準ライブラリ関数 11.2 関数呼び出しのオーバーヘッド 11.3 大域変数 11.4 プロトタイプ宣言 11.5 関数引数
第5回 プログラミングⅡ 第5回
高度プログラミング演習 (11).
オブジェクト指向言語論 第五回 知能情報学部 新田直也.
C プログラミング入門 基幹7 (水5) 14: 発展事項
さまざまなプログラミング言語, オンライン開発環境
extern の意味 (C プログラミング演習,Visual Studio 2019 対応)
オブジェクト指向 プログラミング 第四回 知能情報学部 新田直也.
モジュール分割.
プログラミング 4 文字列.
Inline 展開のアルゴリズム 長谷川啓
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
11: 動的メモリ確保 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
プログラミング演習I 2003年6月11日(第9回) 木村巌.
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
第10回 関数と再帰.
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
14: 発展事項 C プログラミング入門 基幹2 (月4) Linux にログインし、以下の講義ページ を開いておくこと
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
プログラミング演習I 補講用課題
プログラミング 3 ポインタ(1).
C プログラミング入門 総機1 (月1) 14: 発展事項
Presentation transcript:

プログラミング 2 静的変数

広域変数と局所変数 (通常の)局所変数 広域変数 関数(ブロック)の中で定義される変数 関数(ブロック)の中だけで通用する 定義された関数(ブロック)の外では見えない 関数(ブロック)の実行のたびに作られ,実行が終了すると 消滅する 広域変数 関数の外で定義される変数 定義以降ファイル全体で通用する プログラム実行の間,1 つの実態を持つ 関数の実行が終了しても消えない

static を伴う局所変数 static を伴う局所変数 static を伴う変数を使うと,関数に状態を持たせるこ とができる 関数(ブロック)内で定義される 関数(ブロック)の中だけで通用する プログラム開始時に一度だけ実体が作られ,プログラム終了 まで生存する 関数(ブロック)の実行が終了しても消滅しない static を伴う変数を使うと,関数に状態を持たせるこ とができる

static 変数の例(1) void func(void) { int a = 0; printf(“%d\n”, a); a++; return; } int main(void) { int i; for (i = 0; i < 10; i++) { func(); } return 0; }

static 変数の例(2) void func(void) { int a = 0; printf(“%d\n”, a); a++; return; } この a は通常の局所変数 関数実行のたびに作られ,関数の実行が終了すると消滅 「a++」されても関数終了で消えてしまう 出力されるのは毎回「0」

static 変数の例(3) void func(void) { static int a = 0; printf(“%d\n”, a); a++; return; } int main(void) { int i; for (i = 0; i < 10; i++) { func(); } return 0; }

static 変数の例(4) void func(void) { static int a = 0; printf(“%d\n”, a); a++; return; } この a は static を伴う局所変数 プログラム開始時に一度だけ作られ(初期化も一度だけ), 関数が終了しても消えない 「a++」されたことが保持される 呼び出しのたびに出力される値は 1 ずつ大きくなる

static 変数の特徴 通用範囲 生存期間 通常の局所変数 関数(ブロック)内 static 局所変数 プログラム実行中ずっと 広域変数 ファイル内(宣言以降)