ar是一个数组,就是ar是名为ar的数组的首地址。ar[i]就是ar数组的第i个元素,用指针的表达方式表达就是*(a+i)。
例如:intar[5],*p;如果想让p指向数组首元素的话,可以写:p=ar;则会将首地址赋值给p;如果是写ar[3]=7;则编译程序会取ar数组首地址,加上7*sizeof(int)后形成目的地址,然后将7存放到这个地址指向的内存单元中。所以可以说ar与数组起始地址等价。
扩展资料
C语言中数组和指针的等价
数组是一个由(同一类型的)连续元素组成的预先分配的内存块。指针是一个对任何位置的(特定类型的)元素的引用。数组自动分配空间,但是不能重新分配或改变大小。指
针必须被赋值以指向分配的空间(可能使用malloc),但是可以随意重新赋值(即指向不同的对象),同时除了表示一个内存块的基址之外,还有许多其他的用途。(指向一块内存的指针本质上也就是一个数组)数组和指针的统一是C语言的优势之一。用指针可以很方便地访问数组和模拟动态分配的数组。