实际上在其中一个书面测试中,我被问到这些问题,而且在我尝试使用我的vc ++编译器之后我无法回答,所以任何机构都可以帮助解决这些问题
1)
int main()// case ::1
{
int variable=10,20;// here in assigning 20 compiler was giving error
}
但
int main() // case ::2
{
int variable ;
variable=10,20;
printf("%d \n",variable);// without any error it prints value 10
}
2)
int main()
{
function(12,(13,(14,15)));
}
void function(int varible1,int variable2 )
{
printf("%d %d \n",variable1, variable2);// prints 12 and 15
}
怎么来的??? 所以任何人都可以告诉我这些背后的内部过程...... 谢谢!!
答案 0 :(得分:0)
包含逗号的表达式的结果是最后一个子表达式的值。所有子表达式都会被执行。
int x;
cout << (x = 30, "Hello!"); // Outputs "Hello!"
cout << x; // Outputs 30
在表达式
中variable=10,20;
两者
variable=10;
和
20;
执行(第一个将10分配给变量并计算为10,后者只执行任何操作,但计算结果为20)
在
int main()
{
function(12,(13,(14,15)));
}
使用参数12和(13,(14,15))调用函数,其计算结果为12和(14,15),反过来,计算结果为12和15。
您给出的第一个示例是错误地使用快捷方式来定义两个整数:
int x = 10, y; // Defines two integers, x and y
因为在您的示例中,20不是编译器抱怨的变量的有效名称。