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

关于C语言的"[]"运算符与指针

2016-05-05 23:23 295 查看

C语言的”[]”运算符

在C语言中,”[]”运算符最常用是在对数组的处理上用到的,却并不限于数组处理,其实质上与汇编语言中寻址时使用的该操作符相似。对于一个指针p,
p[1]
或者
1[p]
的结果是等价于
*(p+1)
的。

对于指针,加法操作并非是单纯的加上去即可,运算过程会由地址存放数据的类型影响。如以下两段代码最后输出的p+1的值是不同的:

int *p;
p=0;
printf("%x",p+1);


long *p;
p=0;
printf("%x",p+1);


很明显,

type *p=0;
p=p+1;


其实相当于

type *p=0;
p=(type*)((int)p+sizeof(type)*1);//(int)p是把地址作为纯数值处理,类型转换需根据环境而定
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 指针