違いは何ですか
int* x
と
int *x
(存在する場合) ?
両方とも同じです。唯一の違いは、そのような方法で多くの変数を宣言できないことです。
int* x, a, b; //a and b are not pointers
int *x, *a, *b; //all are pointers
私は最初の表記法を使用します。私にとっては、変数がポインター自体ではなくポインター型であることを示しています。
違いはありません。どちらの場合も int ポインターを取得します。
2 つ目の方法を好む理由は、複数の変数を一度に宣言する場合です。
int *str, *foo;
int* str, foo;
これらの 2 つの行は異なります。最初の行は int への 2 つのポインターを宣言しますが、2 番目の行は int への 1 つのポインターと 1 つの int 型変数を宣言します。
ポインタと同じ定義です。どちらもintへのポインタです
この場合、空白はコンパイラにとって重要ではありません。しかし、一部の人々はそれを別の意味で解釈するかもしれません (何が何を指しているのかなど)。私の意見では、良いことではありません (空白はあまり考慮されるべきものではないため)。
まったく違いはありません。
どちらの場合も、これらはへのポインタですint
*
タイプではなく識別子に関連付けられています
type
明確なビジョンのために、との間にスペースを空けるベスト プラクティス*
です。
int *p;
たとえば、あなたが書いた場合
int *p,q;
という訳p
ではありますpointer
が。*が識別子名に関連付けられていることを意味しますq
int
それらは同じですが、複数の変数を宣言するときは注意が必要です:
int* x, y; // x is a int*, while y is just an int
int *z, *w; // both z and w are int*