const を使用して関数パラメーターを宣言する場合、「const int」を区別することが重要です' と 'int const'。これらは同じように見えますが、修飾子の順序によって宣言の解釈が変わります。
'const int' は、定数 (変更不可) で int 型の変数を宣言します。ここで強調しているのは、変数に適用されるconst修飾子です。一方、
'int const'は、 int 型で定数の変数。この場合、const 修飾子は変数ではなく type を変更します。
では、これら 2 つの関数は同一ですか?
<code class="c">int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; }</code>
はい、それらは同等です。 宣言を逆から読むと、これが明確になります。
'const int' の場合:
'int const' の場合:
どちらの場合も、「a」は整数でもあり定数でもあります。
ただし、複雑な宣言では、逆方向から読み取るトリックが非常に重要になります。
<code class="c">// "s" is a pointer to a char that is constant const char *s; // "t" is a constant pointer to a char char *const t = &c; // The char in "s" is constant, so you can't modify it *s = 'A'; // Can't do // The pointer in "s" is not constant, so you can modify it s++; // Can do // The char in "t" is not constant, so you can modify it *t = 'A'; // Can do // The pointer in "t" is constant, so you can't modify it t++; // Can't do</code>
C では、 const データ メンバーはクラス宣言またはコンストラクターのいずれかで初期化できることを思い出してください。一方、C では、const データ メンバーは記号定数とみなされ、宣言内で初期化する必要があるため、#define に非常に近くなります。
以上がC と C の「const int」と「int const」: 本当に同じですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。