C语言函数问题?
来源:百度知道 编辑:UC知道 时间:2024/06/01 19:42:38
#include<stdio.h>
dis()
{
printf("**********");
}
void main()
{
int a;
a=dis();
printf("\n%d\n",a);
}
为什么输出的是 ********* 10
dis()
{
printf("**********");
}
void main()
{
int a;
a=dis();
printf("\n%d\n",a);
}
为什么输出的是 ********* 10
因为printf打印输出了10个字符
它又作为dis()函数的返回值,赋值给了a
dis()并没有返回值,换句话说就是你的变量a没有正确的值!
如果真的希望返回打印的字符数,可以将printf的返回值返回。
#include<stdio.h>
int dis()
{
return printf( "**********" );
}
void main()
{
int a;
a = dis();
printf( "\n共打印了%d个字符\n",a );
}
类似于
dis()
{
printf("**********");
}
这样的函数定义是不标准的,因为某些编译器比如VC6,会默认其返回值为int型。但这不是一个标准的做法,应当显式的指明返回值类型,如果不需要返回值,请指明为void。
高金山 - 经理 五级 4-22 13:46
说得对。你打印出十个字符了,所以输出的是10.
至于为什么是10个字符:9个*号再加上字符串结束符'\0',就是10个字符,明白了吗?
为什么这样编译还能通过???
dis()没有返回值啊,直接用a=dis()
为什么能得到值???