当我突然想到指针只是一个存储变量内存地址的变量时,我正在阅读指针,所以每个整数都应该作为指针工作。然后我创建了一个小程序,它发出警告,但它以某种方式工作。
int main()
{
int i,j;
i=3;
j=&i;
printf("%d\n%d\n%d",i,j,&i);
return 0;
}
输出是
3
1606416600
1606416600
那么,如果正常的 int 起作用,为什么要多放一个 * 呢?
另一个问题是关于以下程序的输出
int main()
{
int a[] = {1,2,3,4,5,6,7};
int *i,*j;
i=&a[1];
j=&a[5];
printf("%d\n%d\n%d",j,i,j-i);
return 0;
}
输出 :
1606416580
1606416564
4
为什么 ji = 4 而不是 16?