我在gcc编译器上执行这个c程序并得到奇怪的结果 那怎么可能
代码:
memset(this)
根据我的结果应该是10 11 12但我得到11 10 12 怎么可能?
答案 0 :(得分:1)
在C ++中,函数参数的求值顺序为undefined,因此如果在特定函数的参数中多次使用递增运算符,则没有“正确”的答案,它们可以在任意值中进行求值顺序。
答案 1 :(得分:1)
请熟悉序列点的概念。只有在这样定义的序列点,才能保证执行先前评估的所有副作用。函数的参数列表之间没有序列点。因此,它会导致未定义的行为。