15.从零开始学习C语言--指针和数组
2013-08-15 17:49
176 查看
指针和一维数组
数组名的含义:一维数组名是个指针常量,它存放的是一维数组第一个元素的内存地址。
注意:数组名并不是真正意义的指针,因为数组名和&数组名,表示的是同一个值 ,但是这不妨碍我们像使用指针一样使用数组名
下标和指针的关系:如果有个数组a[5],a[i]就是对数组下标,那一维数组名是个指针常量,那么:
这里就是把a赋值给p,然后*(p+i) == a[i] == p[i];
总结:如果p是个指针变量,则p[i]永远等价于*(p+i)。
数组在函数间的传递:理解了数组名的含义和下标与指针的关系,不难推断出将数组名和长度做为实参传递给函数,能完全在被调函数中对原数组进行操作。
指针变量的运算:指针的操作十分受限,只有当两个指针变量指向同一段连续的内存空间时(同一数组),两个指针才能相减,结果是两个指针之间相隔的内存单元数,指针不支持其它的运算。
指针变量所占字节:指针变量无论指向什么类型的变量,指针本身只占4个字节,变量的内存地址是以变量首字节的内存地址来表示的。
数组名的含义:一维数组名是个指针常量,它存放的是一维数组第一个元素的内存地址。
注意:数组名并不是真正意义的指针,因为数组名和&数组名,表示的是同一个值 ,但是这不妨碍我们像使用指针一样使用数组名
下标和指针的关系:如果有个数组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个字节,变量的内存地址是以变量首字节的内存地址来表示的。
相关文章推荐
- C语言指针数组与数组指针的学习
- C语言学习笔记15——指针的本质分析
- c语言的申明,指针和数组的学习总结
- C语言学习笔记21——多维数组和多维指针
- C语言学习笔记之成员数组和指针
- C语言学习笔记.指针4--数组指针和指向数组的指针变量(一)
- C语言学习笔记(6)-如何从变量声明的表面上来区分指针数组和数组指针
- C语言学习-----指针篇(1)-----指向多维数组的指针和指针变量
- 【C语言学习】指针再学习(二)之数组的指针
- c语言学习,指针函数、函数指针、指针的指针、指向指针数组的指针
- c语言学习零碎整理(7):数组名是指针吗?
- C语言再学习 -- 数组和指针
- C语言再学习 -- 再论数组和指针
- C语言从零开始——指针数组和数组指针
- C语言学习笔记(18) 指针数组和数组指针分析
- 【C语言学习笔记】数组、字符串、指针
- c语言学习零碎整理(7):数组名是指针吗?
- C语言--数组与指针的学习
- C语言学习笔记17——数组与指针
- C语言学习趣事_20_关于数组名与指针的讨论