C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C /C++でのconstint*、const int * const、およびint const *の違いは?


上記の記号は、次のことを意味します-

int* - Pointer to int. This one is pretty obvious.
int const * - Pointer to const int.
int * const - Const pointer to int
int const * const - Const pointer to const int

また、-

にも注意してください
const int * And int const * are the same.
const int * const And int const * const are the same.

このような記号を読むときに混乱が生じた場合は、スパイラルの規則を覚えておいてください。変数の名前から始めて、時計回りに次のポインターまたはタイプに移動します。式が終了するまで繰り返します。


  1. const int *、const int * const、およびint const *の違いは何ですか?

    ここでは、整数ポインター、整数定数、および整数定数ポインターに基づくいくつかの異なるタイプの変数宣言を確認します。 それらを決定するために、時計回り/スパイラルルールを使用します。用語を話し合うことで、ルールも理解できます。 const int * 。これは、これがポインター型変数であることをコンパイラーに通知するために使用され、定数intのアドレスを格納できます。時計のルールはこのように言っています- もう1つはconstint*constです。これは、これが1つの定数ポインター変数であり、別の定数整数のアドレスを格納できることを示すために使用されます。時計のルールを適用する

  2. C ++での定義と宣言の違いは何ですか?

    C ++では、宣言と定義が混同されることがよくあります。宣言とは、(Cで)型、サイズ、および関数宣言の場合は任意の変数のパラメーターの型とサイズ、またはプログラム内のユーザー定義の型または関数についてコンパイラーに通知することを意味します。宣言の場合、どの変数のためにもメモリにスペースが予約されていません。 一方、定義は、宣言が行うすべてのことに加えて、スペースがメモリに追加で予約されることを意味します。 「定義=宣言+スペース予約」と言うことができます。 以下は宣言の例です- extern int a; // Declaring a