
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
C/C++として……
セマンティックとしては初期化は変数を作るときに値を設定して、代入文は文を実行するたびに値を設定する。
自動変数だと挙動はほとんど一緒だけど、静的変数だと全く違う。
int func1()
{
static int count=0;
return count++;
}
int func2()
{
static int count;
count=0;
return count++;
}
func1は呼び出すたびに0,1,2,...と返ってくるけど、func2は毎回0が返る。
No.4
- 回答日時:
処理系・言語などによりけりなので、一概には言えません。
Cの場合、よくある例としては、
・実は、Cでも、main() よりも前に(暗黙のうちに)動く関数があります。
初期化の場合は、そこで値がセットされます(といっても、代入と言うよりも、初期値の塊がデータ領域にコピーされる例が多い)
代入は、main() の実行などに明示されていますから、その段階で動きます。
組み込みソフトなどの場合は、初期化で設定した値がセットされていることを確認して、スタートアップ(main() よりも前に動く関数)まで正常に動いていたとか、判断ができることがあります。
・あと、当たり前と言えば、当たり前ですが、const 属性の変数は、初期化しかできません。
こんなところでしょうか。

No.3
- 回答日時:
変数の宣言と同時に初期値が設定されている場合
ディスク等の外部記憶に機械語として格納されてる時に値も入っている。
変数宣言の行と分けて2行目に代入する場合
機械語として格納されてる時には変数エリアがあるだけで値ははいってない。
初期値は代入形式にして置かないと、リユーザブルなプログラムにはならない。
同じプログラムが別の実行単位で同時に実行された場合、後から動く方は、前に動いたプログラムがセットした値を使う事になる。
これで予期しない不具合が出ます。
No.2
- 回答日時:
言語によるはずだけど, 例えば C++ だと
・初期化: 「今の値」に意味はない → 新しい値を構築すればそれでいい
・代入: 「今の値」が意味を持つ → 新しい値にする前に (必要なら) 古い値をてきせつに廃棄処分しなければならない
と完全に区別している. C ではあんまり意味がない区分だけど.
あと, ブロックスコープの静的変数では, 初期化が「最初に通った 1回だけ」生じるのに対し代入は「そこを通るたびに毎回実行される」ので全く違う動作になる (これは C でも C++ でも同じ).
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 変数宣言と初期値代入の場所について 3 2022/10/31 19:09
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# 競技プログラミングに関する質問です。 3 2022/04/03 19:51
- その他(プログラミング・Web制作) 変数宣言および代入について 4 2022/11/02 13:03
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
- その他(プログラミング・Web制作) Pythonのライブラリ、randomについて 3 2022/09/20 14:30
- C言語・C++・C# C言語について。 5 2023/06/27 18:37
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのプログラムで、DIAG = 1# ...
-
マイコンのプログラム(C言語...
-
VBAの変数のデータ型を変更する...
-
Integer変数をカラにしたいので...
-
C言語 構造体の中に共用体を定...
-
long型のデータをバイト型の配...
-
1バイトデータの読み出しについて
-
「#undef」と「#define」の使い...
-
Schemeのコンストラクタの引数は?
-
BOOL へのUINT の代入
-
typedefをプログラム中で解除す...
-
構造体のデータを丸ごとコピー...
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
配列の要素数に変数を入れたい...
-
銀行ATMの数字キーの配列
-
Run-Time Check Failure #3とい...
-
配列を使わずに、変数名を動的...
-
init関数の意味
-
ファイルから読み込み、配列
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Integer変数をカラにしたいので...
-
VBAのプログラムで、DIAG = 1# ...
-
「#undef」と「#define」の使い...
-
C++ 構造体の一括初期化 {0}
-
構造体のデータを丸ごとコピー...
-
long型のデータをバイト型の配...
-
VBAにてcolorindexを変数に格納...
-
C言語 構造体の中に共用体を定...
-
VBAの変数のデータ型を変更する...
-
VBAで符号無し整数
-
typedefをプログラム中で解除す...
-
構造体のポインタにNULLが入らない
-
変数の初期化について
-
値が代入されてない時
-
charとucharの違い
-
構造体の初期化方法について
-
整数から16進数への変換 現在c...
-
命名規則 VB 構造体
-
日付チェック関数について
-
1バイトデータの読み出しについて
おすすめ情報