指针 是否相同

您所在的位置:网站首页 c语言判断两个实数是否相等 指针 是否相同

指针 是否相同

2024-07-14 22:10| 来源: 网络整理| 查看: 265

既然指针是一种数据类型,那它也应该有对应的操作或运算,正如整数可以做加减乘除一样。

但是每一种操作或运算都应该对这种数据类型有意义,比如两个实数可以用关系运算得知哪个大哪个小,而两个虚数却不能使用关系运算,因为比较虚数的大小是没有意义的。

对于指针类型来说可以使用的运算符有:和整数做加减法运算,两指针做关系运算。由于指针存储的是一个地址信息,因此指针类型的乘除法都是没有意义的,也是不允许的。

指针的加减运算

指针的加减法和数的加减法是不同的。我们认为,指针只能够和整数做加减法运算(包括整数常量,变量做加减法及自增自减)。其实这也不难理解,因为内存的存储空间是按“个”计算的,不会出现半个存储空间的情况,那么,指针的加减法是否在地址值上做加减法呢?我们先这一段程序来验证一下指针的加减法运算结果

5fd5af5adb5fcd716a6ea77871678b35.png

从上图中运行结果我们发现,每次做了加法以后,地址并不是相差1,而是相差了4所以指针和整数并不是简单的将地址值和整数相加。从运行结果还可以看出,每次做了加法以后,能够输出原先指针指针所指的下一个元素,根据数组在内存中的存储情况,不难得出这样一个结论,指针和整数i的加减法是指针向前或后移动i个对应类型的存储区域,既可以得到以下公式:

新地址=旧地址+i * 每个对应数据类型在内存中所占字节个数。

例如:int变量在内存中占用4个字节,按照上图的例子,每做一次指针加法,

新地址= 旧地址 + 1*4 =旧地址+4。

指针的关系运算

很早我们就介绍了关系运算符有等于,大于,小于,大于等于,小于等于和不等于6种,对于指针来说,等于和不等于就是判断两个指针的值是否相同或不同,即两个指针是否指向了相同或不同的内存地址。而大于和小于就是判断两个指针的值哪个大哪个小。一般来说,值较小的在存储器中的地址位置比较靠前,值较大的在存储器中的地址位置比较靠后。指针的关系运算在数据结构中会经常用到,在后续我们还会重介绍它的用法。

本篇完,欢迎大家转发与收藏,下一篇《指针与保护》



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3