<分区>
执行下面显示的代码后,输出为 4。
谁能解释这段代码中发生了什么。
据我了解:
a[1]的地址即数组元素20的地址存放在指针变量p中,60的地址存放在变量q中。 q-p 完成并打印出来。但 我预计输出会有所不同。
例如,假设第一个元素的起始地址为 100,每个元素占用 2 个字节的整数。那么 a[0] 地址是 100,a[1] 102,a[2] 104,a[3] 106,a[4] 108,a[5] 110。
现在 a[5] 的地址 - a[1] 的地址 = 110-102 = 8
但是值为4。对此有何解释。我哪里遗漏了什么?
Here (键盘链接)是 C 代码:
int main()
{
int a[] = { 10, 20, 30, 40, 50, 60 };
int *p = &a[1], *q = &a[5];
printf("%d",q - p);
return 0;
}