int * pとintp *とint * pの違いは何ですか?


ベストアンサー

まあ、次のようなものはありません:

int p*;

これは無効なステートメントです。このコードではコンパイルエラーが発生します。

一方、int * pとint * pは基本的に同じです。これはスタイルの問題に他なりません。C/ C ++コンパイラに関する限り、int * pとint * pのどちらを記述してもかまいません。したがって、*を変数ではなく型に関連付ける場合は、自由に行ってください。

ただし、注意すべき重要な点が1つあります。

次の宣言では、 2つの整数ポインタ:

int* a,b;

ここで、bは整数として宣言されていますが、aは整数ポインタです。このステートメント:

int *a,*b;

aとbの両方を整数ポインターとして宣言します。

回答

Int p *:まだ見ていませんInt * p:ここでは*がpに付加されているため、pのみが整数へのポインタになります。pの後にセミコロンで区切って別の変数を宣言すると、ポインタ。つまりint * p、q。ここで、pは整数へのポインターですが、qは通常のint変数であり、ポインターではありません。

Int * p、qの場合は、Int * p、qと同様に機能します。どちらの宣言も、pを整数ポインターとして宣言し、qを通常の整数として宣言しています。 Int * p、qは、プログラマーを混乱させるタイプの宣言です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です