C语言数组名

Python022

C语言数组名,第1张

1*p=a

//表示将a的值赋给p所指单元。

p=&a

//表示将p指向a单元,即将a单元的地址赋给p。

所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便,

把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points

to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。[1]

在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。

数组名即数组首地址,是一个常量。 数组元素使用"[ n ]"运算符(下标运算符)来表示第n+1号元素,或者使用“ *(p+n) ”来表示第n+1号元素。 数组元素对于编译器来说 ,在支持快速下标运算的处理器上,a[n]是直接是被转化成汇编代码,不支持的被转化为*(a+n)。这也是老的C程序会在大多数情况下不使用下标运算符的原因。

数组名首先是一个标识符,是这个数组的名字,同时又是一个指针,指向的是这个数组首地址。不过这个指针和平常见到的指针又有点区别,数组名是指针常量,就想#define pi 3.14 中的pi的性质一样,pi的值不能被修改,同样你也不能修改数组名的值,即不能把一个地址复制给数组名,因为数组名是常量。 不仅是数组的名字是指针常量,想函数名,结构体等都是指针常量,这是在c设计的时候,有意为之的。