0

私はポインターを操作しようとしてきましたが、この問題に遭遇しました。このコードでは.. p,h は 2 つのポインタです ... 私は *p = &i , h = &j と同一視しました。私の期待は、 *p にはアドレスが含まれ、 p には i を指すアドレスが含まれ、 h の場合、 h にはアドレスが含まれ、 *h には j の値が o/p されます。

#include <stdio.h>
#include <stdlib.h>

int main()
{
int i =10;
int *p = &i;
int j =30;
int *h;
h = &j;
printf("Hello world!\n %d , %d \n" , *p , p);
printf("Hello world!\n %d , %d \n" , *h , h);
return 20;
}

しかし、p と i の場合の私の o/p は逆になっています.. なぜそうなのか.. コンパイラはこれら 2 種類のステートメントをどのように区別しますか .... *p = &i ; *p = i;

O/Pはこんな感じ

Hello World!
10 , 2359060
Hello World!
30, 2359056

質問のタイトルが間違っていたらごめんなさい..状況を説明する方法がわかりませんでした..同様の問題へのリンクをいただければ幸いです

4

5 に答える 5