【发布时间】:2011-04-05 03:31:15
【问题描述】:
#include<stdio.h>
int main()
{
int i=7,j;
j=(i++,++i,j*i);
return 0;
}
j=(i++,++i,j*i);这个定义好了吗?让我清除我的疑问。
【问题讨论】:
-
为什么要做这样的事情?你就不能
i += 2; j *= i吗? -
@JeremyP: 只是为了学习 c 概念 :-)
-
谁在乎。您永远不会在现实生活中看到此代码。它不会通过代码审查,因为您必须解释序列点是什么,而 80% 的开发人员不知道什么是序列点。
-
看看马丁怎么说?所有这些晦涩难懂的行为与现实世界中的编程完全无关。要涵盖所有这些内容,您唯一需要知道的是要非常小心带有副作用的表达式。
标签: c operator-precedence sequence-points