它应该将当前字符设置为下一个字符。例如:
while( *foo ) {
if(baa(*foo)) *foo++ = *++foo;
foo++;
}
但是我得到以下错误:
error: operation on ‘foo’ may be undefined [-Werror=sequence-point]
cc1: all warnings being treated as errors
谁能解释一下这是为什么?那不是有效的 C 语法?
最佳答案
您在赋值的两边递增 foo
,中间没有序列点。这是不允许的;您只能在序列点之间修改一次值。
关于c - 为什么 *foo++= *++foo 可能未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9951993/