为什么以下代码在C中将“hello5”作为输出?

时间:2015-03-20 06:08:05

标签: c

C中的Follwing代码给出输出" hello5" ...怎么样?

#include<stdio.h>
int main(){
int f = fun();
printf("%d",f);
return 0;
}
void fun(){
printf("hello");
}

1 个答案:

答案 0 :(得分:2)

你看到的是未定义的行为。

f永远不会被初始化,并且您正在打印未初始化的变量,这将导致未定义的行为。

printf()返回成功打印出的字符数,因此这里的计数为5(问候),用于打印你好。

如果您想要定义行为,则需要返回此值,因为您正在main()中初始化变量f

int func()
{
  int j;
  j = printf("hello");
  return j;
}