(1)起初只是为了偷懒,想一次性分别用两个不同的变量来获取两个不同函数的函数值,于是在C++中这样写:
int foo1() {
return 1;
}
int foo2() {
return 2;
}
int main() {
int a, b = foo1(), foo2();
cout << "a:" << a << " b: " << b << endl;
return 0;
}
但是这样程序没有编译通过,显示变量a没有初始化。当时觉得很奇怪,因为a不是已经通过函数foo1赋值了吗,于是猜测可能是不能直接用函数值来初始化(显然错误想法)。
(2)于是更改为:
int foo1() {
return 1;
}
int foo2() {
cout<<"foo2";
return 2;
}
int main() {
int a =0, b=0;
a, b = foo1(), foo2();
cout << "a:" << a << " b: " << b << endl;
return 0;
}
函数结果显示 a =0 , b =1,且打印出foo2。 这其实说明foo1函数的结果被赋值给了b, 而 a则没有赋值,且foo2()被调用。
2 错误分析与总结python中可以有如下语法,但是C++只是将其当做了三个表达式的并列,分别是a变量表达式、 b=foo1()赋值表达式、foo2函数调用表达式。



