【C言語】初期化と代入について
何が違うのか分からなかったので、忘れないようアウトプット。
変数は、作られたときに不定値(ゴミ値)が入ります。
不定値(ゴミ値)
#include <stdio.h>
int main(void){
/* xに何も値を入れない */
 int x;
 printf("%d", x);
 return 0;
}
実行結果
/* 不定値(ゴミ値)が出てくる */
0
int x;で生成したときに入っている不定値(ゴミ値)が出力される。
実行時にエラーが発生したりする原因になるみたいなので、気を付けたいです。
初期化子を使った初期化
データ型 変数;生成と共に入れる値のことを初期化子と呼びます。
データ型 変数 = 値(初期化子)
データ型 変数 = 値(初期化子), 変数 = 値(初期化子)....なども可能。
初期化
#include <stdio.h>
int main(void){
/* 変数を作り、値も同時に入れる */
/*   20 と x-12は初期化子(値)   */
 int x = 20, y = x-12;    
 printf("xの整数は:%d\n",x);
 printf("yの整数は:%d\n",y);
 return 0;
}
xの整数は:20
yの整数は:8
データ型と変数を宣言後、値を初期化(代入)
#include <stdio.h>
int main(void){
/* データ型と変数宣言 */
 int x,y;
/* 値を代入して、初期化する */
 x = 20;
 y = x - 12;
 printf("xの整数は:%d\n",x);
 printf("yの整数は:%d\n",y);
 return 0;
}
xの整数は:20
yの整数は:8
値を代入するタイミングが違う!