两个相同类型的指针变量可以做相加减运算吗

如题所述

应该选择C。A选项两个同类型的指针间可以比较大小,比较原则应该是按照实际内存的高低位比较的。B选项赋值,这个当然是可以的了。D选项两个相同指针变量相减可以获得在之间相隔的同类型元素个数(在某个类型的数组中的应用)。C选项是不可以的,因为两个指针相加什么都得不到,所以规定不允许相加。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-18

对于类型相同的指针变量之间不能够进行加法运算,但可以进行减法运算。

两个同一类型的指针变量是可以相减的,它们的意义表示两个指针指向的内存位置之间相隔多少个元素。

例如,对于int类型的指针p和p1.p1-p的意义表示他们之间相隔多少个int类型的元素。同样对于其他类型的指针变量之间相减的意义也是一样。指针变量的自加和自减实际上是与整数1的加减运算。



扩展资料

指针变量的一般形式如下:类型名*指针变量名1,*指针变量名2,... *指针变量名n ;

空指针是一个特殊的指针,它的值是0,C语言中用符号常量NULL(在stdio.h中定义)表示这个空值,并保证这个值不会是任何变量的地址。空指针对任何指针类型赋值都是合法的。一个指针变量具有空指针值表示当前它没有指向任何有意义的东西。

(void *)类型的指针叫通用指针,可以指向任何的变量,C语言允许直接把任何变量的地址作为指针赋给通用指针。但是需要注意void*不能指向由const修饰的变量,例如const int test; void * ptv; ptv = &test;第三句是非法的,只有将ptv声明为const void * ptv;,上述第三句ptv = &test才是合法的。

当需要使用通用指针所指的数据参加运算时,需要写出类型强制转换。如通用指针ptv 所指空间的数据是整型数据,p是整型指针,用此式转换:p=(int *)ptv;

本回答被网友采纳
相似回答