配列の初期化子について、以下のような事がありました。
1. 一般に教科書で言われている事ですが、int a[3]={1} ; で初期化すると a[0]=1,a[1]=0,a[2]=0と初期化子が与えられていない要素は0で初期子されます。
2. 今度は,意地悪く全ての要素に初期化子を与えない a[3]={ } ; で初期化すると a[0]=0.a[1]=0, a[2]=0. と全てが0で初期化されました。←問題点
3. 初期化子を与えない int a[3] ; では a[0] a[1] a[2] は当然ながら不定値で初期化されます。
1と3については教科書通りですが、2についてはどの様に説明する事ができるのでしょうか。
標準Cに規定があるのでしょうか。それとも環境(コンパイラ)によるものでしょうか。尚私はRed Hat Linuxを使っています。
宜しく願います。
No.3ベストアンサー
- 回答日時:
初期化子は、
initializer:
assignment-expression
{ initializer-list }
{ initializer-list , }
initializer-list:
designation(opt) initializer
initializer-list , designation(opt) initializer
ですので、少なくともひとつは式が必要です。
式が何も無い場合は未定義の動作になります。
この回答への補足
いつもご回答有難うございます。再質問ですが
initializer-list:
designation(opt) initializer
initializer-list , designation(opt) initializer
の部分が解りません。designation(opt) initializerがオプションならば少なくともひとつは式が必要という結論が何処から出たのか理解できません。ご教授くだされば幸いです。
ひととうりC言語を終わり、更にステップアップをめざしていますが、その時基礎を徹底的にやり直そうとしている段階です。
いつもご回答有難うございます。
No.4
- 回答日時:
> designation(opt) initializerがオプションならば
designationだけがオプションであって、
initializerには(opt)が付いていないので必須、
じゃないのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# 配列の初期化についてです。 int 例のプログラムで int x[5]={1,2,3,4,5}; x 1 2022/05/29 15:00
- その他(ブラウザ) "Flags"のデータはどこに保存されていますか? 2 2022/06/01 19:16
- ノートパソコン 初期化する方法を教えて欲しい。 2 2023/01/06 14:49
- iPhone(アイフォーン) iPhone初期化について質問です。 親から使用時間や勝手にアプリをインストールできないように規制が 2 2022/08/21 11:52
- iCloud 今日ゲオで使わなくなったiPhoneとアップルウォッチを売りました。どちらも初期化済みでペアリングも 3 2023/06/25 18:43
- iPhone(アイフォーン) iPhone初期化について質問です。 クイックスタートで新しいiPhoneに移行した後、 旧いiPh 1 2022/10/24 10:56
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- その他(Microsoft Office) pc初期化後のoffice 2021について 5 2022/05/13 17:38
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソフトの開発言語を調べる方法
-
unsigned long long 型のフォー...
-
昔のgraph.hというファイル
-
C++Builder → Visual C++ 移植...
-
<conio.h>?
-
C++でデスクトップGUIアプリ開...
-
C言語の規格
-
『Bin』ディレクトリは何の略語?
-
未使用引数の注意文出力を回避...
-
Visual Studio でmakefileを使...
-
POWERCOBOLのSQL...
-
VC++の/Zm オプションについて
-
COBOLの論理演算子について質問...
-
C言語での式の評価順序について
-
PICでのI2C通信でのマスタ、ス...
-
C言語はC言語でできている?
-
cc と gcc の違い
-
C言語でのコンパイラの作成方法
-
void型のポインタで構造体の参照
-
C言語でチェスを作ってみたいと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
unsigned long long 型のフォー...
-
ソフトの開発言語を調べる方法
-
C++でデスクトップGUIアプリ開...
-
printfなど、標準関数のソース...
-
組み込みソフト。ROM領域にデータ
-
リリースモードとデバッグモー...
-
変数の内容がコロコロ変わる、...
-
cc と gcc の違い
-
COBOLの論理演算子について質問...
-
Visual Studio でmakefileを使...
-
PICでのI2C通信でのマスタ、ス...
-
COBOLのALPHABET...
-
<conio.h>?
-
VB6のコンパイラ
-
COBOL計算式の中間ワーク桁数に...
-
パーサとコンパイラの違いって?
-
関数形式マクロ dtaは戻り値が...
-
プログラミングって右脳よりの...
-
C++Builder → Visual C++ 移植...
-
24bit サイズの変数
おすすめ情報