C言語詳しいやつ来て
■ このスレッドは過去ログ倉庫に格納されています
#define N 2
double x[N]={1.0};
これx[0]には1.0が入ってx[1]には0.0が入ってるんだけどどういう仕組み? 初期化されてないから適当な値が入っててたまたまそれが0だっただけや >>2
初期化しなかったら-6766185273316みたいなのになるもんじゃない? 配列の場合は足りない分含めて初期化されるんちゃうっけ >>3
その時確保されるアドレスによる
適当にデカい配列にしたらそういうのも入ってくるんちゃう x[]={}にすると0.000が入るらしい
これはわかる
なんで{数字}にすると[0]だけ数字が入るんだろう 宣言に対して定義が少ない場合は勝手に0で初期化するらしいわすまんな
int y[5] = {1,2,3}; // y has type int[5] and holds 1,2,3,0,0
https://en.cppreference.com/w/c/language/array_initialization 要素数に対して不足してる分は0(doubleだから0.0)で初期化されるんや >>8
いや最初の要素だけ初期化してるからに決まってるやろが >>12
指定しなかった場合1箱目だけ数値代入して、二箱目以降は0に初期化するつーことか? >>16
いや最初の箱だけ初期化する指定をしてるからそうなるんやろ ■ このスレッドは過去ログ倉庫に格納されています