哪位高手能帮小弟我解释一下这段代码为什么能够得出这样的结果
谁能帮我解释一下这段代码为什么能够得出这样的结果
#include <stdio.h>
int f(int a){
if(a==12)return 3;
}
void main(){
printf( "%d ",f(34));
}
最后打印出来的结果是3616680,我想知道为什么...
谢谢
------解决方案--------------------
你的f函数在实参不等于12时没有返回值,导致不能得到你确定的结果,
系统在取返回值过程中取道了一个垃圾的堆栈值,这个值是很随机的。
你在编译的时候编译器应该给你warning信息了把。
#include <stdio.h>
int f(int a){
if(a==12)return 3;
}
void main(){
printf( "%d ",f(34));
}
最后打印出来的结果是3616680,我想知道为什么...
谢谢
------解决方案--------------------
你的f函数在实参不等于12时没有返回值,导致不能得到你确定的结果,
系统在取返回值过程中取道了一个垃圾的堆栈值,这个值是很随机的。
你在编译的时候编译器应该给你warning信息了把。