c语言中,如果ar是个数组,那么表达式ar[i]与什么等价

如题所述

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语言的优势之一。用指针可以很方便地访问数组和模拟动态分配的数组。


温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-04-17
ar是一个数组,换句话说就是 ar是 名为ar的数组的首地址。
ar[i]就是ar数组的第i个元素,用指针的表达方式表达就是 *(a+i).本回答被提问者和网友采纳
第2个回答  2013-12-11
ar[i]={1,2,3,......i};
第3个回答  2013-12-11
数组名是一个指针,所以从指针角度考虑
ar[i]==*(ar+i)
相似回答