2016-10-21 14 views

答えて

5

整数型のタイプ6は、hereを確認できるので、intです。 cppreference.comから次に

、:変数の場合

自動は が宣言されている変数の型が自動的にその初期化子から推論されることを指定します。 6int型の種類を持っているので

のでiは、int型の種類があります。

この動作は完全に明確です。

+0

あなたは[cppreference.com](http://www.cppreference.com)を意味すると思いますが、cpp.reference.comは存在しません。 – Bim

+0

@Bim yeah、間違いなく!ありがとうございました! –

2

はい、これはまさにautoの対象です。

たとえば、auto i;は意味がありません。コンパイラは6を使用して型を推定します。 6は整数リテラルです。

+0

申し訳ありませんが、質問が明確ではなかったと思いますが、それをintに評価することは保証されていますか?コンパイラを使うこともできますが、それは短いか長いと評価されますか? – Geoff

+1

@Georgeはい、 '6'は整数リテラルなので' int'に保証されています。 –

1

はい、すべてのリテラルに明確な型があるためです。リテラル6のタイプはintです。したがって、autointに翻訳されます。

intが16または32ビットの長さの場合は実装が定義されていますが、これは未定義のビヘイビアを生成しません。プログラム全体の同じintの長さが同じであるためです。それに加えて、アーキテクチャに応じてintの長さにかかわらず、6はshortまたはlongではなくintです。

関連する問題