#include<stdio.h>
int main()
{
int *p=0;
char *ch=0;
p++;
ch++;
printf ("%d and %d\n",p,ch);
return 0;
}
出力:
4 and 1
char ポインターも、それが指しているアドレスで +1 としてインクリメントされることを知っています。
int へのポインターは、それが指している gcc のアドレスでも +4 としてインクリメントされることを知っています。
ポインターを参照解除するには、ポインターで * を使用する必要があることを知っています。
クエリ:
どちらもポインターであり、アドレスが割り当てられていないため、これが p と ch にガベージ値を与えないのはなぜですか。
これにより、インクリメント中にそれぞれのポインターが取得したアドレスの違いが得られるのはなぜですか、またはこれは未定義の動作です。
3.出力が 4 と 1 なのはなぜですか?
Pl。説明。
このコードは gcc-4.3.4 でコンパイルしました。そのCコードです。スタックオーバーフローでそのような質問を見つけることができなかったので、これがいくつかの質問のコピーであることが判明した場合は申し訳ありません。