NOEMBLEM/エンブレムが設定されていません。

メールの詳細(メール表示)

件名:

Re: 配列名に&を付けると

差出人: TDaさん <tda…>
送信日時 2007/04/21 03:27
ML.NO [beginers:0551]
本文:

式中で単に配列名を表記すると3つのの例外をのぞき
「配列のセイント右要素へのポインタ」
に読み替えられます。

3つの例外とは以下の通りです。
char a[10];
という宣言があったとして

1)&演算子の被演算子に適用になった場合
 この場合は配列全体を表します。結果的に&aは配列全体を指すポインタとなり
ます。
2)sizeof演算子の被演算子になった場
 この場合も配列全体を表します。結果的にsizeof(a)は配列全体のサイズとな
ります。
3)配列変数の初期化式中
char a[] = "hello, worldn"
文字列リテラルはconst charの配列でり通常は式中に文字式が現れるのは初期化
単位。

以上はAnSICの内容であるはずです。


YAMADA Shuji wrote:
> 山田と申します.
>
> 配列名に&を付けた場合についてお尋ねします.
>
> gcc コンパイラでは,
>
> char a[10];
> char (*p)[10];
> p = &a;
>
> は -Wall オプションを付けても警告なしにコンパイルできます.
> すなわち
> &a
> は,要素数10のchar型配列へのポインタ,という型になっています.
> (これは,
> char b[3][10];
> のように宣言したときの,例えば b[1] の型でもあります.)
>
> 配列名に&を付けたときの型はこのようになると,
> Cの規格で規定されているのでしょうか.
> (昔のCの本には,配列名に&を付けてはならない,
>  と書いてあったような気がしますが.)
> それとも, gcc で拡張されたことでしょうか.
>
> 知っておられましたら,
> 宜しくご教授いただければ,幸いです.
>
>
>
>
> --[PR]------------------------------------------------------------------
>  ☆━┳━┳━┳━┳━┳━┳━┳━┳━┳━┳━☆  現金10万円!
>  ┃冬┃の┃B┃I┃G┃キ┃ャ┃ン┃ペ┃ー┃ン┃★―★―★―★―★
>  ☆━┻━┻━┻━┻━┻━┻━┻━┻━┻━┻━☆  豪華賞品満載!
>        合計204名様にプレゼント!!!
> http://popot.jp/lbu/member/RegistForm1View.do?ref=6000106------------------------------------------------------------------[PR]--
>
> ■GMO INTERNET GROUP■ GMO INTERNET www.gmo.jp
>
>
>
>
>
>


--
/_/_/_/_/_/_/_/_/_/_/_/_/_/
TDa
mailto:tda@…
/_/_/_/_/_/_/_/_/_/_/_/_/_/

このエントリーをはてなブックマークに追加
添付:

このメールは下記のメールに対する返信です:

このメールには下記のメールが返信されています:

更新順メールリスト