- ベストアンサー
for(int i = 100, long n = 1; i > n/3i; i++)
for(int i = 100, long n = 1; i > n/3i; i++) のように、初期設定で型の違う変数を宣言したいんだけど C++ではこんなふうに2つ以上の型を宣言してはいけないんですか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
, コンマ演算子の原理です。 forの初期化文で "," で区切れるのは値を返す文だけです。 よってintステートメントもlongステートメントも値を返さないので、この文では使用できません。 というか、むしろ、intステートメントの第2引数としてlongが認識されてしまいます。 外で int i; long n; とし for(i = 0, n = 0; hoge; hoge) なら可能です。
その他の回答 (1)
- toysmith
- ベストアンサー率37% (570/1525)
回答No.2
細かいかもしれませんが、用語に混乱があるようなので… カンマ演算子の項は"式”です。 よって、 「forの初期化文で "," で区切れるのは値を返す式だけです」 ということになります。 宣言は“文”なので“式"を書くべき場所におくことは出来ません。
質問者
お礼
ありがとうございます。
お礼
ありがとうございます。