关于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 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- Lua和C语言的交互详解
- C# Pointer指针应用实例简述
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- C语言实现选择排序、冒泡排序和快速排序的代码示例
- 探讨C语言的那些小秘密之断言