首页 > 试题广场 >

对于以下结构定义,(*p)-str++中的++加在()?

[单选题]
对于以下结构定义,(*p)->str++中的++加在()

struct { int len; char *str; } *p;

  • 指针 str 上
  • 指针 p 上
  • str 指向的内容上
  • 语法错误
p是指针,可以写p->str,但是(*p)只能写(*p).str;
发表于 2018-05-26 10:43:47 回复(0)

这种问题能不能交给编译器去做?

发表于 2018-12-08 01:37:41 回复(3)

如果是(*p).str++,则是加在str
本题错在->上,应该是.

发表于 2019-08-26 15:53:00 回复(2)
p是指针,可以写p->str,但是(*p)只能写(*p).str;
发表于 2021-11-11 09:40:49 回复(0)
p是结构体指针变量。
下面这个等式恒成立 p箭头指向指针成员等价于p解引用再 . 取指针成员
p->str === (*p).str
题中: (*p)->str++ 非法
如果改为:
p->str++ -> 优先级高于++ ++自增的是str指针
(*p).str++ () 和 . 同一 优先级  结合方向自左向右  ++ 优先级低 ++自增代表str指针
若想自增str指针指向的内容 加小括号 (*(p->str))++ 或 *((*p).str)++
注:如果不想被别的程序员骂,记得多用小括号。
发表于 2023-10-28 09:27:27 回复(1)
我真的佛了
发表于 2020-03-13 11:35:50 回复(0)
应该是p->str++才是将++加在str上吧?
发表于 2018-05-08 22:45:26 回复(2)
第三版的题目是:对于以下结构定义,p->str++中的++加在()。 选A
发表于 2020-10-11 16:42:21 回复(1)
这个题目应该时第二版的吧。第三版题目时p->str++的++加在:
发表于 2019-07-24 17:35:51 回复(0)
p是指针,可以写p->str,但是(*p)只能写(*p).str; 应该是p->str++才是将++加在str上
编辑于 2018-12-02 09:23:29 回复(0)

指针可以写成(*p).str 但不能写成(p)->str

发表于 2018-06-27 17:39:41 回复(0)
也可以写成*(p->str)++;
发表于 2025-01-11 15:07:53 回复(0)
正确写法是p->str++
发表于 2024-07-20 13:39:09 回复(0)
每次看到这种语文题人都要昏古七了
发表于 2023-03-24 11:40:00 回复(0)
p是指针,->不用解应用
发表于 2022-09-20 18:06:15 回复(0)
->用于指针类型调用所需要的空间
.用于对象调用成员
发表于 2022-04-29 14:38:41 回复(0)
为什么不能多加一个括号!!?
发表于 2020-03-30 12:31:56 回复(0)

糊涂了…

发表于 2019-02-27 09:41:15 回复(0)
语法错误
发表于 2019-01-04 23:29:10 回复(0)
应为p->str++。
发表于 2018-11-29 17:03:07 回复(0)