正しいポインター構文を理解するのに苦労しています。さまざまなソースが異なる方法で行っているようです。
正しいのはどれか。
int* p = NULL;
int * p = NULL;
int *p = NULL;
そしてこれら?
*p = &x;
* p = &x;
初心者の質問で申し訳ありませんが、明確な答えが見つからないようです。
*
データ型の直後、変数名の直前、またはその間にありますか?
すべて有効で、同じ意味を持っているため、個人の選択の問題です。
注意すべき1つのことはこれです: -
int* i,j;
見た目にも関わらず、これはi
int へのポインターとして宣言されていますが j
、単なる int です。詳細については、こちらの質問を参照してください。本当にこれが必要な場合は、..
int *i;
int j;
または、それらを 1 行にまとめたい場合
int j, *i;
それらはすべて正しいです。演算子の間、名前と演算子の間などの空白は関係ありません。
最も読みやすい方法で行ってください。
これは、すべてが有効であるため、どちらが「正しい」かという文法の問題です。
宣言/コードが何を記述しているかを考え、それに応じてそれらを結合します。
例えば
「p という名前のint ポインターが必要です」は、次のことを意味します。int* p
「xのアドレスを含めたい」は、次のcontents pointed to by p
ことを意味します。*p = &x
新しい商用開発サイトへの移行を容易にするために、他の人が読みやすい、または一般的に使用されている標準を選択する必要があります。それらはすべて、同様のコーディング標準を持っています。