标签:
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.
标签:
原文地址:http://www.cnblogs.com/goodhx/p/5154820.html