これはコードです:
#include<stdio.h>
#include<conio.h>
int main()
{
int *p1,*p2;
int m=2,n=3;
m=p2-p1;
printf("\np2=%u",p2);
printf("\np1=%u",p1);
printf("\nm=%d",m);
getch();
return 0;
}
これにより、次のような出力が得られます。
p2= 2686792
p1= 1993645620
m= -497739707
コードと出力に 2 つの疑問があります。
'm' は int であるため、p1 と p2 は両方ともポインターであり、m は整数であるため、入力として p2-p1 を使用しないでください。「'int' から 'int' への無効な変換」のようなエラーが発生しますそうではありません。なぜ?
入力を受け取った後でも、その差は有効ではありません。それはなぜです?