码迷,mamicode.com
首页 > 编程语言 > 详细

C/C++之指针加减法

时间:2016-01-24 11:28:50      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

C和C++中可对指针进行加减,但对其进行乘除则基本无实际意义。
一般来说,对指针进行减法的前提是减数和被减数均指向同一数组。加法同理。
需要注意的是,两个指针的减法,结果是两个地址之间索引变量的数目,而不是占用内存的字节数。
例如下面例子:

1 #include<iostream>
2 using namespace std;
3 int main(void)
4 {
5  int Array[10] = {0};
6  cout << (Array+3) - Array << endl;
7   return 0;
8 }

运行结果为:3
将Array从int类型转到double类型,结果还是3.这正说明:两个地址减法结果是其二者间索引变量的数目。
如果想要输出占用内存的字节数。可进行强制类型转换,如下:

1 #include<iostream>
2 using namespace std;
3 int main(void)
4 {
5  int Array[10] = {0};
6  cout << (int)(Array+3) - (int)Array << endl;
7   return 0;
8 }

运行结果为:12
将Array从int类型转到double类型,结果为:24.

C/C++之指针加减法

标签:

原文地址:http://www.cnblogs.com/goodhx/p/5154820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!