首页 > 试题广场 >

是已知变量p、q是两个同类型的指针变量,下列表达式有语法错误

[单选题]
是已知变量p、q是两个同类型的指针变量,下列表达式有语法错误的是()
  • p+1
  • q++
  • (*p-q)/2
  • *p(*q)
推荐
选C
【分析】

A是指针p指向的地址的下一位置;
B是改变指针变量q存储的地址值;
D是指针变量p和q所指向的值之间的运算;
C的错误在于参与该运算的q所代表的含义不清晰。例如:

编辑于 2019-03-25 14:29:32 回复(6)
void * 怎么说? 
发表于 2020-03-28 20:34:46 回复(0)
选C
A,B明显是对的,个人认为D答案中*p可能为一个函数指针

发表于 2019-03-22 23:32:20 回复(0)
选C,因为指针对指向的“”和指针(地址)无法计算。
指针是一个变量,其值为另一个变量的地址。
A,B同属指针位置在内存的偏移量所以正确,D属于指针变量访问的“”之间进行的计算。

发表于 2019-03-23 08:58:28 回复(0)
D选项如果是函数指针的话,就是对的。
发表于 2019-06-20 10:10:06 回复(0)
D是函数指针。
函数指针的调用:p(2, 3),(*p)(2,3)都是对的
发表于 2021-12-05 14:05:30 回复(0)
还是没懂D是啥操作
发表于 2019-04-19 07:32:37 回复(0)
<p>当p、q均为函数指针的时候,D项才可能是对的</p><p><br></p>
发表于 2021-01-24 10:18:11 回复(0)

C. (*p - *q) / 2

这样才能正确地对两个指针所指向的值进行相减,并将结果除以2。

发表于 2023-11-17 09:02:36 回复(0)
这个D我是怎么也看不出那里对
发表于 2022-10-27 11:42:08 回复(2)
pq同类型,p传了一个参数*q,那么q也应该传参数,而他并没有传。题分类好像是c,不是c++,为什么d是对的?
发表于 2022-07-06 20:26:30 回复(0)
答案选C,
(*p-q)/2,*p一般情况都是求值,q是指针,存在两种情况,如果*p的值是同类型指针没问题,如果*p的值是常量则报错,这里指向不明,所以选c
发表于 2021-11-17 16:20:48 回复(0)
选cd
发表于 2021-02-27 14:54:45 回复(0)
这是靠语法错误,,,, 
所以选c
发表于 2019-04-04 18:25:35 回复(0)
C选项,AB选项是一个意思,D中将q指向的值作为p指针的偏移量,再索引,得到一个值
发表于 2019-03-30 16:29:19 回复(2)