为什么if语句里要加return;
return;的作用是什么,
void不是不返回值吗,为什么去掉return;会提示段错误
void printdigits(int n)
{
if(n/10==0){
printf("%d\n",n);
return;
}
printdigits(n/10);
printf("%d\n",n%10);
}
为什么if语句里要加return;
return;的作用是什么,
void不是不返回值吗,为什么去掉return;会提示段错误
void printdigits(int n)
{
if(n/10==0){
printf("%d\n",n);
return;
}
printdigits(n/10);
printf("%d\n",n%10);
}
这是递归,如果n已经是小于10了,不需要继续处理 n/10,所以不执行后面的代码,直接返回。
其实关键在于不执行后面的printdigits(n/10); 而 return 并不是关键,完全可以不写 return,通常我们这么写:
之所以用 return 只是这个代码编写者的一种偏好
void printdigits(int n)
{
if(n/10==0){
printf("%d\n",n);
}
else
{
printdigits(n/10);
printf("%d\n",n%10);
}
}