C语言:函数中float和void的区别
C language: Difference between float and void in functions
我正在学习如何使用 C 中的函数,但我不明白为什么会这样:
float TableauDebut(float size[], float poi[], char sex[], int nbElem)
{
int i;
for(i=0; i < nbElem; i++){
printf(" %d)%.2f %.2f ", i, size[i], poi[i]);
switch(sex[i]){
case 'F': printf("Woman\n"); break;
case 'M': printf("Man\n"); break;
}
}
显示我的 table 以及使用 void
但是当我尝试在 Java 中做同样的事情时:
static void TableauDebut(double [] size, double [] poi, char [] sex, int nbElem)
{
int i;
for(i=0; i < nbElem; i++){
System.out.printf(" %d)%.2f %.2f ", i, size[i], poi[i]);
switch(sex[i]){
case 'F': System.out.printf("Femme\n"); break;
case 'M': System.out.printf("Homme\n"); break;
}
}
我只能使用 void 而不是 double
在 C 语言中使用 float 和 void 有什么区别,为什么我不能在 Java 中做同样的事情?
A void
return 类型表示您的函数没有 return 值。任何其他意味着你的函数必须 return 该类型的对象(或者,在适用的情况下,可转换 到该类型的对象。)
您的第一个示例承诺 return 一个 float
但没有做到。这是一个错误,但是 C 编译器不需要告诉你这个。使用合适的编译器设置你应该得到一个警告,但最重要的是,有可能在 C 中编译这样一段错误的代码,运行 它,并得到 未定义的行为 在 运行 时间。
Java 保护您免受这种情况的影响,并且无法编译代码。
我正在学习如何使用 C 中的函数,但我不明白为什么会这样:
float TableauDebut(float size[], float poi[], char sex[], int nbElem)
{
int i;
for(i=0; i < nbElem; i++){
printf(" %d)%.2f %.2f ", i, size[i], poi[i]);
switch(sex[i]){
case 'F': printf("Woman\n"); break;
case 'M': printf("Man\n"); break;
}
}
显示我的 table 以及使用 void
但是当我尝试在 Java 中做同样的事情时:
static void TableauDebut(double [] size, double [] poi, char [] sex, int nbElem)
{
int i;
for(i=0; i < nbElem; i++){
System.out.printf(" %d)%.2f %.2f ", i, size[i], poi[i]);
switch(sex[i]){
case 'F': System.out.printf("Femme\n"); break;
case 'M': System.out.printf("Homme\n"); break;
}
}
我只能使用 void 而不是 double
在 C 语言中使用 float 和 void 有什么区别,为什么我不能在 Java 中做同样的事情?
A void
return 类型表示您的函数没有 return 值。任何其他意味着你的函数必须 return 该类型的对象(或者,在适用的情况下,可转换 到该类型的对象。)
您的第一个示例承诺 return 一个 float
但没有做到。这是一个错误,但是 C 编译器不需要告诉你这个。使用合适的编译器设置你应该得到一个警告,但最重要的是,有可能在 C 中编译这样一段错误的代码,运行 它,并得到 未定义的行为 在 运行 时间。
Java 保护您免受这种情况的影响,并且无法编译代码。