我在这里有两个问题。在C/C++中传递参数
Q1: 什么将下面的程序输出(32位小端机器上):
int main()
{
long long a = 0x1, b = 0x2, c = 0x3;
printf("a = %d, b = %d, c = %d.\n", a, b, c);
return 0;
}
,为什么?
Q2:
为什么的a
,b
和c
输出有什么不同?
void func(int a, int b, int c)
{
printf("a = %d, b = %d, c = %d.\n", a, b, c);
}
int main()
{
long long a = 0x1, b = 0x2, c = 0x3;
printf("a = %d, b = %d, c = %d.\n", a, b, c);
func(a, b, c);
return 0;
}
如果您将第一个和第三个设置为默认值,那么当我给它两个参数时,您希望它执行什么操作?至于其他一切,只是未定义的行为。 – chris 2013-05-06 04:44:17
@chris但为什么我不能只将第一个参数设置为默认值? – imsrch 2013-05-06 04:46:20
阅读关于函数重载。你可以用它做你想做的。 – 2013-05-06 04:48:08