为什么指针减法会导致介于两者之间的元素数量
Why pointers substraction results in number of elements in between?
考虑代码:
int arr[20]{};
int * ptr1=arr, * ptr2=&arr[1];
std::cout<<ptr1<<std::endl<<ptr2<<std::endl<<ptr2-ptr1;
输出:
0x7fff4003e0d0
0x7fff4003e0d4
1
为什么不是4?
如果没有这样做,你最终只会一直将差值除以sizeof(whatever)
。元素的数量远比原始差异有用。当您需要后者时,将两个指针转换为减法char*
。
相关文章:
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- OpenCV 函数 cv::remap() 的执行时间更长,当程序在两者之间进入睡眠状态时
- 为什么我的 cout 一次执行,尽管 cin 应该在两者之间读取?
- 如何删除字符串中的所有空格并将数据存储在两者之间
- 如何区分线段和两者之间的空格?C++
- 如何将数据从顶点着色器传递到介于两者之间的片段着色器
- 生成 0 或 1,而不是介于两者之间
- 为什么指针减法会导致介于两者之间的元素数量
- 告诉我两者之间的区别.它是在树上插入的C 代码
- 两者之间的最佳方法是什么:实例化对象或使用指针
- 这两者之间有什么区别?(字符)
- 这两者之间的区别。和这个>
- 两者之间的区别 |和 ||,或 & 和 &&
- 两者之间的区别
- 如何使构造函数在两者之间返回
- 动态铸造-两者之间的区别
- SDL2 -添加表面到表面,纹理到纹理或两者之间的东西
- <vector> 当一个元素从两者之间移除时,STL 会发生什么?
- 这两者之间有什么区别?&我应该使用什么?