Q1:函數中的Return語句有什么用?
Q2:Return 0有什么含義嗎?
A1:Return的作用為,跳出當前的函數,並且返回到調用當前函數的主調函數,當前函數中Return語句一下代碼將不會運行,因為代碼運行過程已經返回到主調函數中去了,而不是當前的函數
A1代碼驗證:
#include <stdio.h>
int test_return(int num_1, int num_2);
int main(){
int num_1, num_2;
printf("Please enter two number:\n");
scanf("%d%d", &num_1, &num_2);
test_return(num_1,num_2);
printf("add = %d", test_return(num_1,num_2));
printf("\n");
return 0;
}
int test_return(int num_1, int num_2){
return num_1 - num_2;
//兩個不同的return來檢驗return的終止性
return num_1 + num_2;
}
輸出結果:
我們可以發現,成功的輸出了test_return( )函數的值,這說明主函數main( )在調用了函數test_return( )后,又回到了主函數並且執行了語句:printf("add = %d", test_return(num_1,num_2));
這驗證了A1中對return作用1的描述
在代碼中我們可以發現,函數test_return( )中有兩個返回值:
1:return num_1 - num_2;
2:return num_1 + num_2;
明顯,輸出只給出了return1中的值即:return num_1 - num_2; 這驗證了A1中對return終止運行作用的描述
測試2:(將return1注釋掉)
#include <stdio.h>
int test_return(int num_1, int num_2);
int main(){
int num_1, num_2;
printf("Please enter two number:\n");
scanf("%d%d", &num_1, &num_2);
test_return(num_1,num_2);
printf("add = %d", test_return(num_1,num_2));
printf("\n");
return 0;
}
int test_return(int num_1, int num_2){
//return num_1 - num_2;
//兩個不同的return來檢驗return的終止性
return num_1 + num_2;
}
輸出結果:
一個復雜一點的代碼(用於理解return回溯到主調函數):
#include <stdio.h>
int one_three(void);
int two(void);
int main(void){
printf("starting now:\n");
one_three();
printf("done\n");
return 0;
}
int one_three(void){
printf("one\n");
two();//定義函數中調用定義函數,
// 這里調用了函數two(),
// two(),return后,還是回溯到one_three()中,即這里的主調函數就是one_three()
printf("three\n");
return 0;
}
int two(void){
printf("two\n");
return 0;
}
A2:
return 0的用途:用來告知程序的結束。return 0 告訴程序正常結束。
return 表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return后面的參數指定。(這里我們在A1中說明了) return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。(以上代碼就是該情況)
//作者:CCCPKeay
//時間:2021.10.19