数组名本身就是地址或指针值,数组和指针都可以通过下标来访问。尽管指针和数组在访问内存的方式上几乎是相同的,但它们还是有区别的。指针变量可以取不同的地址作为它的值,但数组本身就是个地址,它是固定的。
假设a是个数组,i是个int变量。有一个基本的事实是:
a[i] 相当于 *(a + i)
表达式a[i]的值就是数组第i个元素(从0开始计数)的值,而*(a + i)是对表达式a + i进行解引用。后者是个指针表达式,指向a之后的第i个元素的位置。
这意味着我们可以在指针中使用数组记法。
当一个数组被声明时,编译器必须在内存中分配足够数量的连续空间来包含数组的所有元素。数组的基地址就是这个数组在内存中的起始地址,它也是数组第一个元素(索引为0)的地址。
时间: 2024-11-10 08:34:09