C 传递函数参数和无返回语句
它仍然将C 传递函数参数和无返回语句,c,function,C,Function,它仍然将2 3 5作为输出。。因为我们没有return语句final语句c=0未初始化。。它应该给出2 3 0,但它只给出2 3 5。这是未定义的行为,任何事情都可能发生,你不能依赖它 可能发生的情况是,在函数add()中,计算c的值,并将其留在堆栈中,在printf()调用中,打印堆栈的特定地址中的内容。同样,你不能依赖未定义的行为。这是未定义的行为,任何事情都可能发生,你不能依赖它 可能发生的情况是,在函数add()中,计算c的值,并将其留在堆栈中,在printf()调用中,打印堆栈的特定地
2 3 5
作为输出。。因为我们没有return
语句final语句c=0
未初始化。。它应该给出2 3 0
,但它只给出2 3 5
。这是未定义的行为,任何事情都可能发生,你不能依赖它
可能发生的情况是,在函数
add()
中,计算c
的值,并将其留在堆栈中,在printf()
调用中,打印堆栈的特定地址中的内容。同样,你不能依赖未定义的行为。这是未定义的行为,任何事情都可能发生,你不能依赖它
可能发生的情况是,在函数
add()
中,计算c
的值,并将其留在堆栈中,在printf()
调用中,打印堆栈的特定地址中的内容。同样,您不能依赖未定义的行为。这是一个非常好的问题
在函数add()中
表情
#include<stdio.h>
int add(int,int);
main()
{
int a=2,b=3;
printf("%d %d %d",a,b,add(a,b));
getch();
}
int add(int a,int b)
{
int c;
c=a+b;
c=0;
}
评估
在此表达式中,必须首先计算右侧。
它返回a+b的值,该值存储在返回寄存器中,该值最终存储在c中
在下一个表达式中
c=a+b;
它只是将0的值初始化为c。
它不需要返回任何值。
所以返回寄存器的值仍然是5。这是一个非常好的问题 在函数add()中 表情
#include<stdio.h>
int add(int,int);
main()
{
int a=2,b=3;
printf("%d %d %d",a,b,add(a,b));
getch();
}
int add(int a,int b)
{
int c;
c=a+b;
c=0;
}
评估
在此表达式中,必须首先计算右侧。
它返回a+b的值,该值存储在返回寄存器中,该值最终存储在c中
在下一个表达式中
c=a+b;
它只是将0的值初始化为c。
它不需要返回任何值。
因此返回寄存器的值仍然是5。对此进行了解释。解释一下。非常感谢。。。。现在我不再有这种怀疑了再次感谢AkshayNo问题。如果我的回答对你有帮助,请接受:)非常感谢。。。。现在我不再有这种怀疑了再次感谢AkshayNo问题。如果我的回答对你有帮助,请接受:)