程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言return關鍵字

C語言return關鍵字

編輯:關於C

return 用來終止一個函數並返回其後面跟著的值,相對很簡單。

return (Val);//此括號可以省略。但一般不省略,尤其在返回一個表達式的值時。return 可以返回些什麼東西呢?看下面例子:
char * Func(void)
{
char str[30];

return str;
}
str 屬於局部變量,位於棧內存中,在Func 結束的時候被釋放,所以返回str 將導致錯誤。

注意:return 語句不可返回指向“棧內存”的“指針”,因為該內存在函數體結束時被自動銷毀。

函數的值只能通過return語句返回主調函數。
return 語句的一般形式為:
return 表達式;
或者為:
return (表達式);
該語句的功能是計算表達式的值,並返回給主調函數。

1)在函數中允許有多個return語句,但每次調用只能有一個return 語句被執行,因此只能返回一個函數值。
2) 函數值的類型和函數定義中函數的類型應保持一致。如果兩者不一致,則以函數類型為准,自動進行類型轉換。
3) 如函數值為整型,在函數定義時可以省去類型說明。
4) 不返回函數值的函數,可以明確定義為“空類型”,類型說明符為“void”。一旦函數被定義為空類型後,就不能在主調函數中使用被調函數的函數值了。例如,在定義s為空類型後,在主函數中寫下述語句
sum=s(n);
就是錯誤的。為了使程序有良好的可讀性並減少出錯, 凡不要求返回值的函數都應定義為空類型。在返回類型為void的函數中,你同樣可以強制結束函數運行,使用"return ;"方法。


所以這裡還是說一下return的兩種用法:

1、沒有返回值的函數
不帶返回值的return語句只能用於返回類型為void的函數,return語句是為了引起函數的強制結束,這種用法類似於循環結構中的break語句的作用。 例子:


[html] view plaincopyprint?
void swap(int &v1,int &v2)  
{  
    if(v1==v2)  
        return;  
    int temp=v2;  
    v2=v1;  
    v1=tmp;  
}  

void swap(int &v1,int &v2)
{
 if(v1==v2)
  return;
 int temp=v2;
 v2=v1;
 v1=tmp;
}
2、具有返回值的函數
任何返回類型不是void的函數都必須返回一個值,而且這個返回值的類型必須和函數的返回類型相同,或者能隱式轉化為函數的返回類型。
[html] view plaincopyprint?
int max(int a,int b) 

    if(a>b)return a; 
    else return b; 

main() 

    int max(int a,int b); 
    int x,y,z; 
    printf("input two numbers:\n"); 
    scanf("%d%d",&x,&y); 
    z=max(x,y); 
    printf("maxmum=%d",z); 

int max(int a,int b)
{
    if(a>b)return a;
    else return b;
}
main()
{
    int max(int a,int b);
    int x,y,z;
    printf("input two numbers:\n");
    scanf("%d%d",&x,&y);
    z=max(x,y);
    printf("maxmum=%d",z);
}不在多說return的用法了,很簡單,沒什麼可深入的了,只是需要額外注意返回指針的情況,上面也已經提到過了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved