2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

C言語詳しいやつ来て

1 :風吹けば名無し:2022/07/04(月) 18:27:17.60 ID:mPMD1cY50.net
#define N 2

double x[N]={1.0};

これx[0]には1.0が入ってx[1]には0.0が入ってるんだけどどういう仕組み?

2 :風吹けば名無し:2022/07/04(月) 18:28:33.07 ID:nuMSuQNW0.net
初期化されてないから適当な値が入っててたまたまそれが0だっただけや

3 :風吹けば名無し:2022/07/04(月) 18:28:58.09 ID:mPMD1cY50.net
>>2
初期化しなかったら-6766185273316みたいなのになるもんじゃない?

4 :風吹けば名無し:2022/07/04(月) 18:29:27.24 ID:Py72ao6a0.net
配列の場合は足りない分含めて初期化されるんちゃうっけ

5 :風吹けば名無し:2022/07/04(月) 18:30:04.09 ID:nuMSuQNW0.net
>>3
その時確保されるアドレスによる
適当にデカい配列にしたらそういうのも入ってくるんちゃう

6 :風吹けば名無し:2022/07/04(月) 18:31:40.97 ID:KmepJrtNd.net
自分も最初謎だったわ
初期化されてんだよなこれ

7 :風吹けば名無し:2022/07/04(月) 18:31:46.85 ID:kGLlcYYLp.net
どの辺が疑問なんや
普通やろ

8 :風吹けば名無し:2022/07/04(月) 18:32:17.41 ID:mPMD1cY50.net
x[]={}にすると0.000が入るらしい
これはわかる
なんで{数字}にすると[0]だけ数字が入るんだろう

9 :風吹けば名無し:2022/07/04(月) 18:33:33.38 ID:nuMSuQNW0.net
宣言に対して定義が少ない場合は勝手に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

10 :風吹けば名無し:2022/07/04(月) 18:33:43.71 ID:kGLlcYYLp.net
要素数に対して不足してる分は0(doubleだから0.0)で初期化されるんや

11 :風吹けば名無し:2022/07/04(月) 18:34:24.35 ID:Py72ao6a0.net
はいワイの勝ち

12 :風吹けば名無し:2022/07/04(月) 18:34:34.91 ID:Rh7mZSfU0.net
>>8
いや最初の要素だけ初期化してるからに決まってるやろが

13 :風吹けば名無し:2022/07/04(月) 18:34:58.18 ID:6dJel3ac0.net
初期化子リストやな
仕様や

14 :風吹けば名無し:2022/07/04(月) 18:36:11.19 ID:FZVtrgF0a.net
初期化だってさ

15 :風吹けば名無し:2022/07/04(月) 18:36:19.31 ID:nuMSuQNW0.net
個人的にはコンパイルエラーにすべきやと思うわ

16 :風吹けば名無し:2022/07/04(月) 18:36:37.41 ID:mPMD1cY50.net
>>12
指定しなかった場合1箱目だけ数値代入して、二箱目以降は0に初期化するつーことか?

17 :風吹けば名無し:2022/07/04(月) 18:37:15.07 ID:bgx435Ozr.net
初期化だろこれ、初期化
基本だから押さえとけよな

18 :風吹けば名無し:2022/07/04(月) 18:37:33.09 ID:Rh7mZSfU0.net
>>16
いや最初の箱だけ初期化する指定をしてるからそうなるんやろ

19 :風吹けば名無し:2022/07/04(月) 18:37:38.82 ID:mPMD1cY50.net
>>13
仕様か
なんか気持ち悪いな

20 :風吹けば名無し:2022/07/04(月) 18:37:59.22 ID:mPMD1cY50.net
>>18
いつ最初の箱だけ指定してるんや

21 :風吹けば名無し:2022/07/04(月) 18:38:20.96 ID:s1MmQroa0.net
バグ埋め込むなよボケ

総レス数 21
4 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200