首页 > 试题广场 >

对于指针运算,下面哪一个是错误的?

[单选题]
对于指针运算,下面说法错误的是()
  • 可以用一个空指针赋值给某个指针变量
  • 两个指针可以进行加法运算
  • 如果一个指针指向数组元素,指针可以加上一个整数
  • 如果一个指针指向数组元素,该指针可以执行自增自减运算
推荐
B。考察的是指针的概念。
指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址。

声明形式

type *var-name;    //type 是指针的基类型var-name 是指针变量的名称
  • 选项A变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL,称为空指针
  • 选项B指针是一个用数值表示的地址,两个地址相加没有意义。所以B错误
  • 选项C指针是一个用数值表示的地址,因此可以对指针执行算术运算,当前位置向前后移动相应的位置
  • 选项D程序中使用指针代替数组,因为变量指针可以递增同样地,对指针进行递减运算,即把值减去其数据类型的字节数。
编辑于 2019-08-21 14:11:20 回复(0)
指针相加没意义,相加后地址不可控,可能会破坏其他地方内容;连续存储空间,两指针相减,可求出两指针相差字节数,在数组中很常见。
发表于 2019-09-15 10:53:46 回复(0)
B,指针之间相减可以,但是不能相加。指针相加没意义,编译器也不允许
发表于 2019-08-20 16:33:33 回复(2)
打个比喻,酒店房间号如指针,房间号相加有何意义?额,这么理解简单粗暴~
发表于 2021-03-31 17:21:35 回复(0)
编译器禁止指针相加,因为,地址相加后可能对内存进行不合法访问
编辑于 2021-03-16 17:12:07 回复(0)

指针运算是 C/C++ 程序中经常使用的一种操作,用于通过指针变量访问内存地址中的数据。以下是对各选项的说明:

A 说法正确,空指针是一个 null 指针,可以用来表示一个没有指向任何有效对象或函数的指针。可以将一个空指针赋值给某个指针变量。

A选项中使用空指针进行赋值操作可能会导致野指针的问题。

野指针是指指向未知或无效内存地址的指针。在C/C++中,将空指针赋值给某个指针变量实际上是将该指针变量指向了一个无效的内存地址,这就产生了野指针。

B 说法错误,两个指针不能进行加法运算,因为这涉及到两个地址之间的距离或偏移量,两个地址之间的距离没有意义。只有在指针和整数进行加减运算时才有意义。

C 说法正确,可以将一个指针加上一个整数,用于访问指针所指向的数组元素。加上一个整数后,指针变量将指向数组中的另一个元素。

D 说法正确,可以对指向数组元素的指针执行自增或自减运算,来访问数组中的前一个或后一个元素。

发表于 2023-10-19 16:59:48 回复(0)
选项A:变量声明的时候,如果没有确切的地址可以赋值,为指针变量赋一个 NULL,称为空指针 选项B:指针是一个用数值表示的地址,两个地址相加没有意义。所以B错误。 选项C:指针是一个用数值表示的地址,因此可以对指针执行算术运算,当前位置向前后移动相应的位置。 选项D:程序中使用指针代替数组,因为变量指针可以递增。同样地,对指针进行递减运算,即把值减去其数据类型的字节数。
发表于 2020-08-08 23:46:17 回复(0)
两个地址相加没有意义。
发表于 2020-08-22 15:21:31 回复(0)
可以加法,只是没意义
发表于 2020-05-17 20:44:41 回复(0)
可以相加,当成两个整数相加就行,结果不是指针了
编辑于 2023-12-29 11:37:40 回复(0)
指针不能相加
发表于 2022-11-30 02:17:29 回复(0)
指针可以相减,不能相加
发表于 2022-04-19 17:17:14 回复(0)
const指针不能自增自减,但可以加一个数值构成表达式。这出题者的思考范围有点狭窄啊。
发表于 2021-03-16 11:24:06 回复(0)