重複の可能性:
C - ポインターの初期化、アスタリスク位置
これらの宣言の違いは何ですか:
char* str;
と
char *str;
違いはありますか?
もう一つの例:
char* str;
struct StrStackLink *next;
両方ともstrポインタnextですか、それとも星の配置に何か意味がありますか?
重複の可能性:
C - ポインターの初期化、アスタリスク位置
これらの宣言の違いは何ですか:
char* str;
と
char *str;
違いはありますか?
もう一つの例:
char* str;
struct StrStackLink *next;
両方ともstrポインタnextですか、それとも星の配置に何か意味がありますか?
違いはありません - どちらも char へのポインタを宣言します。ただし、同じ行で複数の変数を宣言すると違いがあります
char* str1, str2;
str1ポインターでありstr2、char であると宣言しますが、
char *str1, *str2;
2 つの char ポインタを宣言します
作成した char ポインター宣言はすべて同等です。星の配置は何かを変えます。
紛らわしい場合は、次の宣言です。
char* a, b;
ここでは、 a へのポインターchar、および b、aを宣言しますchar。したがって、わかりやすくするために、星を変数名で折りたたむことをお勧めします。
char *a, b;
いいえ、まったく違いはありません。個人的な好みの問題です。
両者に違いはありません。
いいえ、違いはありませんが、それがポインターchar *strであることを知っているので、記法の方が優れています。str
たとえば、宣言は、それがポインターであるchar *str1,str2ことを意味しますが、char です。宣言は同じことを意味しますが、混乱します。str1str2char* str1,str2
全く違いはありません
両方ともchar *str同じchar* strです
char * str;も同じです。
スペースはこれに影響を与えず、*常に識別子名と一緒に使用されます。
はい、2番目の質問は両方ともnextポインタstrです。
以下の場合、
char *str,s;ここにstrあるのはただです。両方をポインタとして各識別子の前に置きたい場合。pointerschar*
または、typedef同じタイプのポインターが複数必要な場合に、この場合に考慮すべき使用法を次に示します。
typedef char* pchar;
pchar str, s; // both str and s are pointers
違いはありません。
そのように考えさせられる証拠はありますか?
次のように宣言することもできます。
char * p;