0

例如

    int a = 3;
    int b = sizeof(++a);
    int c = a;

结果是 c 等于 3 还是 4?结果是否取决于特定的编译器?

4

1 回答 1

0

规范指出,增量运算符在运算符中使用时不会生效sizeof

从抽象的角度来看,这也是有道理的。具体来说,sizeof运算符返回对象使用的字节数。虽然递增整数甚至指针不会改变该整数的大小,但 ++ 运算符会误导新程序员认为大小确实发生了变化。

如果有兴趣查找主题“副作用”以获取有关此主题的更多讨论。

于 2013-09-04T03:57:25.220 回答