c++ - 指针减去数组和变量中的指针
问题描述
谁能帮我这个。我认为指针是一个保存变量地址的对象。所以当我减去一个指向指针的指针时。它得到这个结果。
int a = 2;
int b = 7;
int* c = &a;
int* d = &b;
int e = c - d; // = 3
int array[] = { 1, 2, 6, 4, 7, 8, 5, 3 };
int* f = &array[0];
int* g = &array[8];
int h = g - f; // = 8
解决方案
在您的第一个示例中,减去独立指针是没有意义的。考虑到你的例子:
int a = 2;
int b = 7;
int* c = &a;
int* d = &b;
int e = c - d; // Nonsense
如果您要尝试使用指针执行“2 - 7”操作,那么您首先必须取消对指针的引用(评估指针指向的变量所持有的值):
int e = (*c) - (*d);