char* p = init();
p = foo(p); /* this one */
函数foo
原型:
char* foo(char* p);
是允许以这种方式致电foo
,还是属于未定义行为类别?
答案 0 :(得分:9)
是的,这是明确定义的 - 在函数参数的评估和函数调用之间存在一个序列点。
答案 1 :(得分:6)
是允许以这种方式调用foo,还是属于Undefined Behavior类别?
是,订单有保证(参数&评价和函数调用之间存在一个序列点)。
您可能会对副作用的未经修改的修改或其他内容感到困惑。