指针的运算系列(2):指针-指针(相减)

简介: 指针的运算系列(2):指针-指针(相减)

对于指针,等读者在CSDN或者百度搜索到此时候,或许读者已经开始初步走向指针的中级地步了,已经对于指针有着初步的了解与认识了!


但是对于指针-指针(相减)或许大家有着些许疑惑,问什么没有指针加指针运算呢??


其实归根溯源,还是要看指针的本质!指针的本质还是地址,因此地址+地址(相加)又能得出什么来了呢??


下面笔者将用代码+解析的方法来带领大家认识一下: 指针的运算系列(2):指针-指针(相减)


#include <stdio.h>
int main()
{
  int arr[10] = { 0 };
  printf("%d\n", &arr[9] - &arr[0]);
  printf("%d\n", &arr[0] - &arr[9]);
  return 0;
}

在该段代码中,用了&(取地址操作符),通过地址来相减,其实本质还是为两个指针相减!


0a2653c851af460fa595bd959398a8f1.png


由于,看出来相减之后的结果,可以为正也可以为负,但所得结果的绝对值都是一样的,再结合&arr[9] - &arr[0]两者之间的距离:因此得出,指针与指针相减,得出的结果为:两者之间的距离!


但是 对于两个指针相减,需要前提:


                    两个指针都指向同一个数组里面(同一块连续的空间)


相关文章
|
C语言
C语言:指针的运算
指针 + 或 - 整数表示指针跳过几个字节(具体跳过几个字节由指针类型决定) 本文不做具体讲解,详解跳转链接。
74 1
|
编译器
C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组(上)
C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组(上)
|
1月前
|
人工智能
魔法指针 之 指针变量的意义 指针运算
魔法指针 之 指针变量的意义 指针运算
18 0
|
编译器
C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组(下)
C初阶--指针初阶(下):指针运算+指针和数组+二级指针+指针数组(下)
|
5月前
|
存储 C++
有关【指针运算】的经典笔试题
有关【指针运算】的经典笔试题
31 4
|
6月前
|
C语言
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)1
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
200 51
|
6月前
|
C语言
在引用数组元素时指针的运算
在引用数组元素时指针的运算
50 0
|
6月前
|
C语言 C++
C语言:指针运算笔试题解析(包括令人费解的指针题目)
C语言:指针运算笔试题解析(包括令人费解的指针题目)
|
6月前
|
存储 人工智能 编译器
【重学C++】【指针】一文看透:指针中容易混淆的四个概念、算数运算以及使用场景中容易忽视的细节
【重学C++】【指针】一文看透:指针中容易混淆的四个概念、算数运算以及使用场景中容易忽视的细节
106 1
|
6月前
|
编译器
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)3
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)