您的位置:首页 > 编程语言 > C语言/C++

15.从零开始学习C语言--指针和数组

2013-08-15 17:49 176 查看
指针和一维数组

数组名的含义:一维数组名是个指针常量,它存放的是一维数组第一个元素的内存地址。

注意:数组名并不是真正意义的指针,因为数组名和&数组名,表示的是同一个值 ,但是这不妨碍我们像使用指针一样使用数组名

下标和指针的关系:如果有个数组a[5],a[i]就是对数组下标,那一维数组名是个指针常量,那么:

int a[5];
int *p;
p=a;  //p=&a;




这里就是把a赋值给p,然后*(p+i) == a[i] == p[i];

总结:如果p是个指针变量,则p[i]永远等价于*(p+i)。

数组在函数间的传递:理解了数组名的含义和下标与指针的关系,不难推断出将数组名和长度做为实参传递给函数,能完全在被调函数中对原数组进行操作。

指针变量的运算:指针的操作十分受限,只有当两个指针变量指向同一段连续的内存空间时(同一数组),两个指针才能相减,结果是两个指针之间相隔的内存单元数,指针不支持其它的运算。

指针变量所占字节:指针变量无论指向什么类型的变量,指针本身只占4个字节,变量的内存地址是以变量首字节的内存地址来表示的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: