str
がchar[100]
入力されます。
&
オペレーターを使用してアドレスを取得すると、char
のアドレスではなく、char[100]
のアドレスが与えられます。
1でポインタをインクリメント型はポインタのポイントを使用してできるだけ多くのバイトとしての価値を動かす:あなたはポインタ演算がどのように機能するかに思われる場合は差額の
関連性が明らかになりました。どのchar[100]
へのポインタ100とchar
へのポインタのためのちょうど1です。
幾分直感的表記
T (*<name>)[<dimension>]
が使用されている配列へのポインタを定義します。
のでchar[100]
へのポインタで、その1を書くことができます
char (*ps)[100];
次のようになります。
char str[100];
char (*ps)[100] = &str; // make ps point to str
をstr
配列にps
ポイントを持っています。
char * p = str;
を行う
はchar
あるstr
の第一要素にp
ポイントになります。
興味深いのは、同じアドレスにそのp
とps
ポイントです。:-)
しかし、あなたがしたい場合
p = p + 1;
p
をするときだけバイトをインクリメントしまったのに対し、
ps = ps + 1;
ps
は、バイトをインクリメントました。
出典
2017-08-17 15:39:47
alk
'p = &str;'を 'p = str;'または 'p =&str [0];'に変更します。 – AntonH
pにstrの最初のアドレスを割り当てる必要があります。 strの最初のアドレスは&str [0]またはstrです。 – Ihdina