[解決済み] なぜCやC++では(int)+4*5という表現が許されるのでしょうか?
2023-04-18 07:49:52
疑問点
(int) + 4*5;
なぜ、この (値を持つ型の追加) が可能なのでしょうか?(g++とgccで試しました。)
意味がない(効果がない)ことは分かっているのですが、なぜこれが可能なのか知りたいのです。
どのように解決するのですか?
この
+
はここで
単項
+
演算子
ではなく
二項加算演算子
. ここでは足し算は行われていないのです。
また、構文
(int)
はタイプキャストのために使われます。
この文は次のように読み直すことができます。
(int) (+ 4) * 5;
としてパースされます。
((int) (+ 4)) * (5);
というのがあります。
-
単項演算子を適用する
+
演算子を適用し、整数の定数値4
. -
にタイプキャストされます。
int
-
オペランドとの乗算
5
これは
(int) (- 4) * (5);
に似ていますが、単項演算子の使い方がより親しみやすくなっています。
あなたの場合、単項演算子
+
へのキャストと
int
- はどちらも冗長です。
関連
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] 単項演算子プラスは何をするのですか?