0

配列変数がポインターと見なされる場合と、C で単純な配列と見なされる場合はいつですか? 例として、sizeof(array_variable) 演算子がアドレス サイズを返す場合と、配列のサイズを返す場合があります。

4

4 に答える 4

5

C 2011 (N1570) 6.3.2.1 3:

sizeof演算子、_Alignof 演算子、または単項&演算子のオペランドである場合、または配列の初期化に使用される文字列リテラルである場合を除き、''array of type '' 型を持つ式は、次の式に変換されます。配列オブジェクトの最初の要素を指し、左辺値ではない「型へのポインタ」 。配列オブジェクトにレジスタ ストレージ クラスがある場合、動作は未定義です。

C 2011 (N1570) 6.7.6.3 7:

「型の配列」としてのパラメーターの宣言は、「への修飾ポインター」に調整されます。ここで、型修飾子 (存在する場合) は、配列型派生の[および]内で指定されたものです。

于 2013-09-10T17:49:30.730 に答える