为什么在c或c ++中不支持添加两个指针.
当我做,
int *ptr,*ptr1;
int sum = ptr + ptr1;
Run Code Online (Sandbox Code Playgroud)
C或C++会抛出错误.虽然它支持,
int diff = ptr - ptr1;
Run Code Online (Sandbox Code Playgroud)
mid*_*dor 26
指针包含地址.添加两个地址是没有意义的,因为你不知道你会指出什么.减去两个地址可以计算这两个地址之间的偏移量,这在某些情况下可能非常有用.
编辑:为了解决寻找中期的共同愿望,请考虑这个(纯粹作为一个例子):
#include <stdio.h>
int main (int argc, char **argv){
int arr[] = {0,1,2,3,4,5,6,7,8,9};
int *ptr_begin = arr;
int *ptr_end = &arr[9];
int *ptr_mid = ptr_begin + (ptr_end - ptr_begin)/2;
printf("%d\n", *ptr_mid);
}
Run Code Online (Sandbox Code Playgroud)
我很确定你总是可以提出一个偏移计算,让你可以通过添加来实现你想要的功能.