- 主题:这个printf输出值是多少
#include <stdio.h>
int main ()
{
int a =10;
printf("%d %d %d\n",--a,a--,a);
}
--
FROM 114.242.29.*
猜测:输出结果应该与编译器的实现有关
【 在 pickun 的大作中提到: 】
: #include <stdio.h>
: int main ()
: {
: ...................
--
FROM 223.166.201.*
对于同一个变量在printf函数中多次修改,此行为是未定义的。
【 在 pickun 的大作中提到: 】
: #include <stdio.h>
: int main ()
: {
: ...................
--
FROM 114.255.101.*
998
【 在 pickun 的大作中提到: 】
:
: #include <stdio.h>
:
: int main ()
: {
#发自zSMTH@V2217A
--
FROM 1.202.122.*
C好像没有规定参数的求值顺序
【 在 pickun 的大作中提到: 】
: #include <stdio.h>
: int main ()
: {
: ...................
--
FROM 114.253.32.*
研究点正常的代码
【 在 pickun 的大作中提到: 】
: #include <stdio.h>
: int main ()
: {
: ...................
--
FROM 219.143.9.*
【 在 pickun 的大作中提到: 】
: #include <stdio.h>
: int main ()
: {
: ...................
9 9 8?
--
FROM 103.100.65.*
搜一下sequence point。谭浩强的书上应该没讲这种
https://en.cppreference.com/w/c/language/eval_order
这里列了sequence point的14条“军规”
--
修改:z16166 FROM 123.118.191.*
FROM 123.118.191.*
吃饱了撑的,才会去考虑这种问题
更应该考虑的是main为啥没有形参,没有返回值
【 在 pickun 的大作中提到: 】
: #include <stdio.h>
: int main ()
: {
: ...................
--
修改:freynew123 FROM 222.64.18.*
FROM 222.64.18.*
9
--
FROM 49.5.194.*