void szcl(int a)改成 int szcl(int a)为什么可以正常运行
#include<stdio.h>void szcl(int a)//为什么int也对
{
int sum=0;
for(;a;a/=10)
{
sum+=a%10;
}
if(sum>=10)szcl(sum);
else printf("%d",sum);
}
int main()
{
int a;scanf("%d",&a);
szcl(a);
return 0;
}
将 void szcl(int a)改成 int szcl(int a)为什么可以正常运行(声明的函数中没有写返回值)。 本帖最后由 jackz007 于 2022-11-15 17:39 编辑
编译器语法检查不够严格,如果定义 int 那就必须安排 return 语句返回结果。你的函数本来就没有返回结果,所以,定义成 void 也没有任何的影响。 void 不用写返回值
但是 int 是要写的 , 这里编译器帮你圆过去了而已
页:
[1]