面试题答案
一键面试#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int *p1 = &arr[3];
int *p2 = &arr[7];
// 计算相隔元素个数
int distance = p2 - p1 - 1;
printf("两个指针之间相隔的元素个数为: %d\n", distance);
return 0;
}
解释:在C语言中,当两个指针指向同一数组时,指针相减
得到的结果是它们之间相隔的元素个数(这里假设指针类型相同)。p2 - p1
会得到从p1
到p2
跨越的元素数,但是这个结果包含了p2
所指向的元素,所以要减去1,才能得到真正相隔的元素个数。