ここに住所は何ですか?ここで負のポインタ値は何ですか?
int main(void) {
int i = 5;
int *p;
p = &i;
printf("%d\n",*p);
printf("%d\n",i);
printf("%d\n",p);
printf("%d\n",&i);
printf("%p\n",p);
printf("%p\n",&i);
return 0;
}
出力:
5
5
-7530484
-7530484
0xff8d180c
0xff8d180c
たものが出力されているが、pが私に-7530484
を与え、なぜ私はそれがポインタでなければならないと思いますが、これは0xff8d180c
何ですか?あなたのコードで
'printf("%d \ n "、p);' printf( "%d \ n"、&i); 'はUBです。 –
デュプリはまったくデュプリではありません。印刷された「蹄鉄」。 – Quentin
関連:http://stackoverflow.com/questions/1689423/memory-address-positive-or-negative-value-in-c – rsp