数组的关系运算
来源:互联网 发布:战舰世界mac 闪退 编辑:程序博客网 时间:2024/05/11 03:57
观察一个循环,它用来清除一个数组中所有的元素。
#define N_VALUES 5float values[N_VALUES];float *vp;for(vp=&values[0];vp<&values[N_VALUES];) *vp++=0;
for语句使用了一个关系测试来决定是否结束循环,这个测试是合法的,因为vp和指针常量都指向同一数据中的元素(事实上,这个指针常量所指向的是数组最后一个元素后面 的那个内存位置)使用!=i代替<也是可行的
现在考虑下面这个循环:
for(vp=&values[N_VALUES];vp>&values[0];) *--vp=0;
它和前面那个循环所执行的任务g相同,但数组元素将以相反的次序清除。
注意:有人可能会反对像*--vp这种写法,认为可读性差,,写下了下面的写法:
for(vp=&values[N_VALUES-1];vp>=values[0];) *vp=0;
警告:在数组第一个元素被清除之后,vp的值还将减去1,而接下去的一次比较运算是用于结束循环的。
但是比较表达式vp>=&values[0]的值是未定义的,因为vp移到了数组的边界之外。标准允许指向数组元素的指针与指向数组最后一个n元素后面的那个内存位置的指针进行比较,但不允许与指向数组第一个元素之前的那个内存位置的指针进行比较。
0 0
- 数组的关系运算
- 两个数组的关系运算
- MATLAB数组的关系运算
- C++ 指针与数组的关系及运算
- 指针那些事(算术运算、和数组的关系)
- 关系的幂运算
- 数据库的关系运算
- 专门的关系运算
- javascript的关系运算
- 关系R的运算
- 数组和基本关系运算符
- 指向指针的指针,指针的运算,指针与多维数组的关系
- 从运算符的优先级来看数组和指针的关系
- Java的关系运算符
- 常用的关系运算符
- EL的关系运算符
- 关系代数的基本运算
- 运算关系里面的细节
- SOCKET, TCP/UDP, HTTP, FTP
- Zxing.jar生成带有logo的二维码
- 一、阻塞非阻塞与同步异步
- 创建动态数组
- 小希的迷宫 hdu 1272
- 数组的关系运算
- 安卓定义一根很小的竖线及自定义圆角
- C++中const成员变量的初始化
- 三种方法解决android帮助文档打开慢
- 服务器安全维护
- .NET中zip的压缩和解压
- 二、UNIX网络I/O模型
- 判别式模型与生成式模型
- Google Guava 类库简介