我是 C 语言的初学者,目前正在使用指针来理解。下面的代码创建了一个包含十个元素的数组,我尝试在这里使用指针输出第一个和第二个数组元素的地址:
#include <stdio.h>
int main()
{
int array[10];
int i;
for ( i = 0; i < 10; i++ ) {
array[ i ] = i;
}
int *ptr = &array[0];
int *ptr2 = &array[1];
printf("Element[%d] = %d at Address = %x\n", 0, *ptr, ptr);
printf("Element[%d] = %d at Address = %x\n", 1, *ptr2, ptr2);
return 0;
}
编译后,我得到以下输出:
Element[0] = 0 at Address = 195ab640
Element[1] = 1 at Address = 195ab644
所以第一个数组元素array[0]
和第二个数组元素的地址array[1]
是195ab640
和195ab644
。连续的数组元素地址编号之间总是有 4 个差异。
我期待如果第一个数组元素的地址是 m 下一个元素地址将是 m+1 但我遇到了m+4
. 为什么地址增加了四而不是一?
我使用这个在线编译器:https ://www.onlinegdb.com/online_c_compiler