指针的算术运算
来源:互联网 发布:尘埃3优化 编辑:程序博客网 时间:2024/04/29 17:23
指针的算术运算
C语言允许你在指针执行整数的加减运算。如果pnptr指向一个整数,pnptr + 1 pnptr后在内存中的地址的下一个整数。pnptr - 1是在pnptr以前的整数地址。
请注意,pnptr + 1不在pnptr返回地址,但下一个对象,pnptr分型。如果pnptr指向一个整数(假设4字节),pnptr + 3意味着在pnptr 3个整数,这是12个地址后pnptr。如果pnptr指向一个char,这始终是1字节,pnptr + 3意味着在pnptr 3字符,这是3个地址后pnptr。
计算一个指针的算术表达式的结果时,编译器总是乘以整数操作数所指对象的大小。这就是所谓的缩放。
下面的程序:
1234567int nValue = 7;int *pnPtr = &nValue; cout << pnPtr << endl;cout << pnPtr+1 << endl;cout << pnPtr+2 << endl;cout << pnPtr+3 << endl;
正如你所看到的,这些地址不同(7C 4 + 4 = 80的十六进制)。这是因为一个整数是4个字节,笔者的机器。
使用短而不是在同一程序:
1234567short nValue = 7;short *pnPtr = &nValue; cout << pnPtr << endl;cout << pnPtr+1 << endl;cout << pnPtr+2 << endl;cout << pnPtr+3 << endl;Outputs:
0 0
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 指针的算术运算
- 1. 指针的算术运算
- 指针的算术运算(1) 加减运算
- C指针解析 ------ 指针的算术运算
- 第二章。指针的算术运算
- C语言指针的算术运算
- 指针算术运算
- 指针算术运算
- 指针算术运算
- 指针算术运算
- 45 雅虎判断其是否能够由一个全零矩阵经过上述运算得到
- 45 整数数组,将其分为m份使各份的和相等
- uploadify 500 问题解决思路
- Context.getExternalFilesDir()和Context.getExternalCacheDir()方法
- 三种快速排序以及快速排序的优化
- 指针的算术运算
- 46 四对括号可以有多少种匹配排列方式
- Unable to execute dex: Multiple dex files define 解决方法
- 数据库引擎介绍
- [Java Performance] 字符串拼接注意事项
- 指针运算遍历数组
- Android面试题整理
- 使用unity3d需要注意到细节
- POJ 1236 添加最少的边使图变成强联通