ベストアンサー
まあ、次のようなものはありません:
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は、プログラマーを混乱させるタイプの宣言です。