-PR-
解決済み

動的 静的って?

  • 暇なときにでも
  • 質問No.9701
  • 閲覧数3326
  • ありがとう数7
  • 気になる数1
  • 回答数8
  • コメント数0

お礼率 18% (10/53)

最近プログラミングを始めたんですが、「動的」「静的」の意味が何となくでしか分かりません。
どなたか教えてください。
通報する
  • 回答数8
  • 気になる1
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル10

ベストアンサー率 50% (52/103)

一般的には必要になってから準備するのが動的で、あらかじめ準備しておくのが静的としている例が多いようです。

プログラミングに限定すると、プログラムの起動と同時に生成されるオブジェクト(変数、定数、関数など)が静的(なオブジェクト)、プログラムの実行が始まってから(必要に応じて)生成されるのが動的(なオブジェクト)です。
さらに、起動時にいくつか準備しておいて、実行時に条件によって選択する準静的(なオブジェクト)というのもあります。

Kanataさんの例はおそらく変数のストレージ(変数のメモリ空間上の位置)について挙げようとしたのだと思われますが、この書き方だとどちらかというと定数&変数の区別の例になってしまいますね。
関連するQ&A
-PR-
-PR-

その他の回答 (全7件)

  • 回答No.2
レベル12

ベストアンサー率 35% (146/416)

ユーザからの投稿やDBなどから情報を引きだし、リクエストごとに内容を生成するサイトを“動的”といいます。 純粋なHTMLなど、何度見ても同じものが出てくるようなサイトを“静的”と言います。
ユーザからの投稿やDBなどから情報を引きだし、リクエストごとに内容を生成するサイトを“動的”といいます。
純粋なHTMLなど、何度見ても同じものが出てくるようなサイトを“静的”と言います。


  • 回答No.1

静的:ソース上でのみ値が変更できるもの 動的:実行時に値が変化するもの ではでは☆
静的:ソース上でのみ値が変更できるもの
動的:実行時に値が変化するもの

ではでは☆
  • 回答No.3
レベル13

ベストアンサー率 37% (570/1525)

通常、コンパイル時に決定するものを静的といい、実行時に決定するものを動的といいます。 static int i = 1 ; int j ; j = i ; この場合,iは静的に1に初期化されますがjは動的に1が代入されます。
通常、コンパイル時に決定するものを静的といい、実行時に決定するものを動的といいます。

static int i = 1 ;
int j ;
j = i ;

この場合,iは静的に1に初期化されますがjは動的に1が代入されます。
  • 回答No.5
レベル10

ベストアンサー率 50% (52/103)

茶々を入れるようで心苦しいのですが、 toymithさんの回答は間違ってはいないのですが static int i ; int j =1; i = j ; でも j は静的に1に初期化されて i には動的に1が代入されるので、例としては混乱を招きやすいと思います。 C言語などにおける変数へのstatic宣言はあくまでストレージに対する宣言です。 つまりstaticをつけ ...続きを読む
茶々を入れるようで心苦しいのですが、

toymithさんの回答は間違ってはいないのですが

static int i ;
int j =1;
i = j ;

でも j は静的に1に初期化されて i には動的に1が代入されるので、例としては混乱を招きやすいと思います。

C言語などにおける変数へのstatic宣言はあくまでストレージに対する宣言です。
つまりstaticをつけるとその変数に対するメモリはプログラムの実行時に確保され、その寿命はプログラム終了時までです。
一方でauto変数(=関数中のstaticでない変数)はその関数の実行時にスタック領域にメモリが確保され、寿命はその関数が終了するまでです。
(これらは原則であって、言語やコンパイラの最適化機構によって厳密には正しくないこともあり得ます。)
  • 回答No.7
レベル12

ベストアンサー率 35% (146/416)

技術的な話題が取り上げられていますが、私が思うに「動的/静的」とはコンテンツの内容だと思います。 サーバ側ではなにも処理をしないようなHTML書類でも、JavaScriptなどで“動的”なページは作れますし、CGI,ASP,PHPなどプログラムを使って生成する“静的”なページもあります。 例えば、JavaScriptでゲームを作り、ブラウザ上で計算した内容によって表示内容を変え、ユーザの利用に ...続きを読む
技術的な話題が取り上げられていますが、私が思うに「動的/静的」とはコンテンツの内容だと思います。

サーバ側ではなにも処理をしないようなHTML書類でも、JavaScriptなどで“動的”なページは作れますし、CGI,ASP,PHPなどプログラムを使って生成する“静的”なページもあります。

例えば、JavaScriptでゲームを作り、ブラウザ上で計算した内容によって表示内容を変え、ユーザの利用に合わせて見せるコンテンツを選んでゆく様にした場合などは“動的”といえるでしょうし(現実にはこういうのは少ないかな?)逆にCGI, ASP, PHPなどサーバサイドで実行されるプログラムでHTMLなどをリクエストごとの生成するものでも、静的なファイルをただ右から左に渡すだけの“静的”コンテンツも作れます。

つまり、何度みても誰が見ても同じものが表示されるようなコンテンツを“静的”といい、リクエストした時の状況によって内容が変わるものを“動的”というんだと思います。
  • 回答No.6
レベル13

ベストアンサー率 37% (570/1525)

#3の回答は混乱/誤解を招く表現であった事をお詫びします。 bobさんへ ご指摘はありがたいのですが、あの例ではstaticをつけないと「厳密な」静的初期化にはなりません。 auto変数はオブジェクト自体が動的ストーレジ属性を持つ可能性があり、厳密な静的初期化はできません。 ここでいう「厳密な静的初期化」とはローディング時に行われる初期化であり、auto変数のように実装依存で初期化方式が変 ...続きを読む
#3の回答は混乱/誤解を招く表現であった事をお詫びします。


bobさんへ
ご指摘はありがたいのですが、あの例ではstaticをつけないと「厳密な」静的初期化にはなりません。
auto変数はオブジェクト自体が動的ストーレジ属性を持つ可能性があり、厳密な静的初期化はできません。
ここでいう「厳密な静的初期化」とはローディング時に行われる初期化であり、auto変数のように実装依存で初期化方式が変わるものの初期化を含めません。
  • 回答No.8
レベル10

ベストアンサー率 50% (52/103)

> toysmith さん > あの例ではstaticをつけないと「厳密な」静的初期化にはなりません。 これも全くその通りで私もあの回答を書いている時点で十分意識していましたが、toysmithさんの静的の定義(ストレージの話に限定しなければ一つの解釈として正しいといえます)に従えば私の例でも変数 j を静的に初期化していることになります。それも含めて混乱しやすいというのが私の#5の指摘です。 ...続きを読む
> toysmith さん

> あの例ではstaticをつけないと「厳密な」静的初期化にはなりません。

これも全くその通りで私もあの回答を書いている時点で十分意識していましたが、toysmithさんの静的の定義(ストレージの話に限定しなければ一つの解釈として正しいといえます)に従えば私の例でも変数 j を静的に初期化していることになります。それも含めて混乱しやすいというのが私の#5の指摘です。

質問者は静的、動的という言葉を特にC言語のストレージについて限定していません。静的、動的という言葉はいろんな場面で出てくる言葉です。ライブラリにも動的と静的があります。また、実際basilさんはWebコンテンツの形態についてと解釈していますね。

というわけで静的動的の一般的な定義を考えようとしたのですが、対象によって微妙に意味合いが異なってきれいにまとまりそうにないので、#4の冒頭のような少々あいまいな定義を書きました。プログラミングに限定した場合は#4中盤の定義で概ね一般化できていると思います。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ