c语言中函数里是不是遇到return语句就不再执行函数剩下的内容直接返回了?

rt
2024-11-16 19:22:11
推荐回答(5个)
回答1:

是的。

例如:

fun1(){

return;

printf("fun1");

}

fun2(){

fun1();

printf("fun2");

}

main(){

fun2();

}

扩展资料

return语句的使用说明

(1)返回值类型应和函数类型一致,不一致将返回值自动转换成函数类型。

(2)函数中可以有多条返回语句,这时一般与if语句联用,执行到哪一条返回语句,哪条返回语句起作用。

(3)函数中无return语句,执行至函数体结尾时返回,此时将返回一个不确定的值给函数。

(4)如果只需要从函数中返回,而不需带回值,使用不带表达式的return语句。

回答2:

C语言没有严格意义上的“数组类型”。可能从C语言代码角度来看,似乎有数组类型的变量,但是如果尝试将该变量像其他变量一样使用,得到的实际上是指向数组第一个元素的指针。

在C语言程序开发中,不可以编写下面这样的代码

char f(void)[8] {
char ret;
// ...fill...
return ret;
}
int main(int argc, char ** argv) {
char obj_a[10];
obj_a = f();
}

不能在C语言函数中返回数组。但是如果将数组定义在结构体里面,就可以将其返回了,例如下面这段C语言代码如下:

struct s { char arr[10]; };
struct s f(void) {
struct s ret;
// ...fill...
return ret;
}
int main(int argc, char ** argv) {
struct s obj_a;
obj_a = f();
}

扩展资料

return语句执行之后return返回之前执行的源代码

public class FinallyTest1 {

public static void main(String[] args) {

System.out.println(test1());
}
public static int test1() {

int b = 20;
try {

System.out.println("try block");

return b += 80;
}

catch (Exception e) {

System.out.println("catch block");
}

finally 

{

System.out.println("finally block");

if (b > 25) {
System.out.println("b>25, b = " + b);
}
}
return b;
}
}

回答3:

嗯,是这样的,不过return只能退出当前函数,如果多个函数嵌套就不行了,要想整个退出用exit
例如:
fun1(){
return;
printf("fun1") ;
}

fun2(){
fun1();
printf("fun2") ;
}
main(){
fun2();
}
此时main函数调用fun2,然后fun2调用fun1,fun1直接return了,fun1没有打印,但是fun2打印了,如果想不打印fun2,把fun1里面的return改为exit就好了

回答4:

对的。有返回值的函数return后面需要加个类型匹配的量,无返回值的话return后面留空就行。

不过只能针对一层函数。

回答5:

return语句有中断当前程序的效果 如果遇到return 会直接返回 不执行下面的代码了