我试图用 C 写这个东西:
(*(result+1))!="\0"
编译器说:
条件下的可能分配
(*(result+1))=!"\0"
问题是什么?
C 中的比较使用==
运算符。单曲=
是作业。除此之外,您还试图将指针与整数进行比较。您拥有的代码是:
(*(result+1))=!"\0"
在那个表达式中,!"\0"
等于0
,所以你的代码真的在做:
(*(result+1))=0
这可能不是你想要的。当然,它与您在“我正在尝试编写此表达式”示例中的内容不匹配。我认为你想要做的是:
(*(result+1)) != '\0'
使用!=
“不等于”运算符。看起来你已经写=!
了。可能只是一个错字。请注意,我也将双引号更改为单引号以更正您的表达式。
编辑说明 - 您根本不需要操作员。你的表达等于:
*(result + 1)
这首先会为您省去麻烦。
如果您确实在执行比较而不是分配,则需要==
代替=
; 这就是为什么您会收到可能的分配消息。