新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机C语言一维数组

单片机C语言一维数组

作者:时间:2013-02-27来源:网络收藏



在c和c++中数组的指针就是数组的起始地址(也就第一个元素的地址),而且标准文档规定数组名代表数组的地址(这是地址数值层面的数组表示)。例如:

int a[10];

int *p;

p=a[0]//和p=a是等价的。

因为a是数组名,所以他是该数组的地址,同时因为第一个元素为a[0],那么a[0]也代表了该数组的地址。但是我们是不是就说一个数组名 和该数组的第一个元素的运算是一回事呢?在一维的时候当时是的,但是在高维的时候,我们要考虑到维数给数组带来的影响。

a[10]是一个数组,a是数组名,它是一个包含10个int类型的数组类型,不是一般的指针变量噢!(虽然标准文档规定在c++中从int[]到 int*直接转换是可以的,在使用的时候似乎在函数的参数为指针的时候,我们将该数组名赋值没有任何异样),a代表数组的首地址,在数字层面和a[10] 的地址一样。这样我们就可以使用指针变量以及a来操作这个数组了。

所以我们要注意以下问题:

p[i]和a[i]都是代表该数组的第i+1个元素;

p+i和a+i代表了第i+1个元素的地址,所以我们也可以使用 *(p+I)和*(a+I)来引用对象元素;

p+1不是对于指针数量上加一,而是表示从当前的位置跳过当前指针指向类型长度的空间,对于win32的int为4byte;

c语言相关文章:c语言教程


c++相关文章:c++教程




评论


相关推荐

技术专区

关闭