【发布时间】:2018-12-26 16:29:27
【问题描述】:
学习 C. 使用用户定义函数。
#include <stdio.h>
#include <stdlib.h>
int print_random_matrix (int m, int n);
void main (void)
{
int m, n;
printf("m: "); scanf("%d", &m);
printf("n: "); scanf("%d", &n);
print_random_matrix(m, n);
}
int print_random_matrix (int m, int n)
{
int i, j, a[20][20];
for (i= 1; i<= m; i++)
{
for (j= 1; j<= n; j++)
{
printf("%d ", rand()%10);
}
printf("\n");
}
//why does this work without RETURN?
}
据我所知,您需要一个 return 语句来从您定义的函数中返回值,但是没有它就可以工作,我不明白为什么。 这段代码对我来说看起来不正确。
代码正确吗?
&
为什么它现在可以工作?
&
如何编写带有 return 语句的 print_random_matrix 函数?(如果必须)
【问题讨论】:
-
无论如何你都没有收集或使用任何返回值,但编译器应该会警告你。
-
嗯,你没有将返回值存储在任何地方,你怎么能说它有效呢?
-
gcc -Wall yourprog.c说warning: control reaches end of non-void function [-Wreturn-type]。 C 允许你这样做,但行为是未定义的,所以任何事情可能发生,包括“工作”的外观。 -
"如何编写带有 return 语句的 print_random_matrix 函数?"你希望它返回什么?
-
我很想重新打开,因为根据 C 标准,示例及其行为有很大不同。