有的函数是不需要返回值的。这类函数只需执行特定任务,调用它们时,我们知晓任务完成后无需关注返回值。如果一个函数不返回值,可以在声明时将返回类型指定为void,例如:void foo(int bar)。但是有一个特殊情况需要注意。如果函数不返回值,通常写作return 0的地方该如何处理呢?只需写return分号即可。因为return关键字有两个作用:结束函数和提供返回值。既然不需要返回值,就可以利用return结束函数。举个小例子,要打印如下图形:* *** ***** ****************,需要输入一个n,n等于几就打印几行上述图案。分析可知,第i行由n-i+1个空格和2*i-1个星号组成,因此可以编写两个函数,第一个函数叫printSpace,参数是要打印的空格数,第二个函数叫printStar,参数是要打印的星号数,然后在循环中调用这两个函数。```c#include void printSpace(int n);void printStar(int n);int main() { int i, n; scanf("%d", &n); for (i = 1; i <= n; i++) { printSpace(n - i + 1); printStar(2 * i - 1); printf("\n"); } return 0;}void printSpace(int n) { int i; for (i = 1; i <= n; i++) printf(" ");}void printStar(int n) { int i; for (i = 1; i <= n; i++) printf("*");}```怎么样?通过函数,编程可以变得更简洁。如果不使用函数,可能就需要在循环中嵌套循环了。另外,需要注意程序中出现了多次的i和n。但由于它们在自己的函数中声明,都是局部变量,即使名称相同,也不会相互影响。如果你忘记了这一点,可以回顾一下关于局部变量的章节。