学过C的应该都知道,可以通过指针访问数组元素。以下就是一个最简单的例子:
#include<iostream>
using namespace std;
int main(void)
{
int a[6] = {1,2,3,4,5,6};
int *p = a; //或者 = &a[0]
cout<<p[0]<<endl; //输出a[0]
cout<<*p<<endl;//输出a[0]
cout<<*(p+1)<<endl; //输出a[1]
cout<<p[1]<<endl;//输出a[1]
return 0;
}
上面都是一些很常见的例子,但是如果有p[-2]这种东西出现,你怎么看?(p还是上述定义的指针)如下面代码:
int main(void)
{
int a[6] = {1,2,3,4,5,6};
int *p = a;
p = p + 3;//指针后移
cout<<"p[0] = "<<p[0]<<endl;
cout<<"p[-2]= "<<p[-2]<<endl;
return 0;
}
输出的结果是: p[0] = 4 p[-2] =2
这是因为 p = p+3语句,将p指向a[3](元素4对应的位置),因此p[0] = 4,这不难理解。 让人费解的是,p[-2]下标是负数,由于下标是正数的时候 ,表示从p[0]
位置往右移动,那么对应的,-2 就应该表示从p[0]位置往左移动。但是必须注意的是,不能向左移的太多,不能向左移超过a[0],否则会出现内存错误。
PS:未完,待续。
分享到:
相关推荐
数组与指针的艺术 数组与指针的艺术
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大 学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是...
C++数组与指针深入剖析C++数组与指针深入剖析C++数组与指针深入剖析C++数组与指针深入剖析
数组与指针的艺术 数组与指针的艺术.pdf
C++之 数组 与 指针 的 异同 pdf
C++数组与指针对象数组对象指针C++数组与指针对象数组对象指针
1。数组与指针区别; 2.数组&指针的相同点。 3.函数参数;
1 数组及其简单应用 2 指针及其简单应用 3 指针与数组 4 字符串 5 指针数组与命令行参数 6 引用
数组与指针运算 指针深度讲解教程
数组与指针上的遍历数组与指针上的遍历数组与指针上的遍历数组与指针上的遍历
详细讲解了指针,指针数组,数组指针,指针的指针等的应用。
数组与指针.doc ,通俗易懂的讲解C语言的数组与指针
数组与指针详解,通过几个案例,介绍了数组与指针的区别和联系,不过在学习之前,你得确保你已经学习了数组与指针。
详细讲述了二维数组与指针之间的联系,对于学习C语言,理解指针数组吗,数组指针,数组与指针之间的关系有重要的帮助。仔细学习完该文档,详细你不会再为指针和数据而困惑。
C++数组与指针全面介绍,指针的重要性不言而喻,很多程序员怕指针,越是怕用,越要去用!
C++习题 6数组与指针.doc (填空 选择 解答)
详细分析二维数组与指针关系,并利用指针 实现二维数组和一维数组的相互转换!
数组与指针 利用数组表示一组相关 数据项 声明数组、初始化数组、 应用数组中的单个元素 将数组传递给函数 声明和使用多维数组
指针的概念 一维数组与指针PPT学习教案.pptx
数组和指针在各类编程语言中,都很重要,数组应用很广泛,理解基础很必要