ホームページ > バックエンド開発 > C++ > C の変数宣言でかっこがエラーなしでコンパイルされるのはなぜですか?

C の変数宣言でかっこがエラーなしでコンパイルされるのはなぜですか?

Patricia Arquette
リリース: 2024-11-01 02:02:28
オリジナル
715 人が閲覧しました

Why Do Parentheses Compile Without Errors in Variable Declarations in C  ?

C での括弧内の変数の宣言

次のコードは興味深い疑問を引き起こします。

<code class="cpp">int main() {
    int(s);
}</code>
ログイン後にコピー

なぜ括弧内の s の宣言はエラーなしでコンパイルされますか?

説明

C 標準の [dcl.meaning] によると:

"宣言 T D ここで、D は ( D1 ) の形式を持ち、含まれる宣言子 ID の型は、宣言 T D1 に含まれる宣言子 ID の型と同じです。宣言された識別子の型ですが、複雑な宣言子のバインディングに影響を与える可能性があります。

提供されたコードでは、 s は宣言子です。したがって、括弧はその意味を変更せずに使用できます。

<code class="cpp">int(s) // Equivalent to int s</code>
ログイン後にコピー
高度な例

括弧は、より複雑なシナリオで特に役立ちます。

これらの区別は、正しいメモリ割り当てと参照を保証するために不可欠です。
<code class="cpp">int *a[10]; // a is an array of ten pointers to int.
int(*b)[10]; // b is a pointer to an array of ten ints.</code>
ログイン後にコピー

以上がC の変数宣言でかっこがエラーなしでコンパイルされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート