0

我试图用 C 写这个东西:

(*(result+1))!="\0"

编译器说:

条件下的可能分配(*(result+1))=!"\0"

问题是什么?

4

2 回答 2

7

C 中的比较使用==运算符。单曲=是作业。除此之外,您还试图将指针与整数进行比较。您拥有的代码是:

(*(result+1))=!"\0"

在那个表达式中,!"\0"等于0,所以你的代码真的在做:

(*(result+1))=0

这可能不是你想要的。当然,它与您在“我正在尝试编写此表达式”示例中的内容不匹配。我认为你想要做的是:

(*(result+1)) != '\0'

使用!=“不等于”运算符。看起来你已经写=!了。可能只是一个错字。请注意,我也将双引号更改为单引号以更正您的表达式。

编辑说明 - 您根本不需要操作员。你的表达等于:

*(result + 1)

这首先会为您省去麻烦。

于 2013-01-03T19:29:21.247 回答
1

如果您确实在执行比较而不是分配,则需要==代替=; 这就是为什么您会收到可能的分配消息。

于 2013-01-03T19:30:22.007 回答