首页 > 解决方案 > 指针减去数组和变量中的指针

问题描述

谁能帮我这个。我认为指针是一个保存变量地址的对象。所以当我减去一个指向指针的指针时。它得到这个结果。

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 

标签: c++arrayspointerssubtraction

解决方案


在您的第一个示例中,减去独立指针是没有意义的。考虑到你的例子:

int a = 2;
int b = 7;
int* c = &a;
int* d = &b;
int e = c - d; // Nonsense

如果您要尝试使用指针执行“2 - 7”操作,那么您首先必须取消对指针的引用(评估指针指向的变量所持有的值):

int e = (*c) - (*d);

推荐阅读