int main()
{
int *p,*q;
p=(int *)1000;
q=(int *)2000;
printf("%d:%d:%d",q,p,(q-p));
}
出力
2000:1000:250
1.行がわかりp=(int *)1000;
ません。これは、pが1000アドレスの場所を指していることを意味しますか?*p=22
この値は1000アドレスに保存され、既存の値を上書きするとどうなりますか?値を上書きする場合、別のプログラムが1000アドレス空間で動作しているとどうなりますか?
- どのように
q-p=250
?
編集:printf("%u:%u:%u",q,p,(q-p));
私は出力が同じである ことを試しました
int main()
{
int *p;
int i=5;
p=&i;
printf("%u:%d",p,i);
return 0;
}
出力
3214158860:5
- これは、コンパイラが使用するアドレスが整数であることを意味しますか?通常の整数とアドレス整数の間に違いはありませんか?