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

来源:互联网 发布:linux查看日志命令tail 编辑:程序博客网 时间:2024/04/30 04:15

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是把地址作为纯数值处理,类型转换需根据环境而定
0 0