1. 程式人生 > >C語言基礎——指標型函式返回值

C語言基礎——指標型函式返回值

既然指標可以作為函式的引數傳給函式,那麼也一定可以作為函式的返回值,返回給呼叫函式。

比如,自己寫一個返回兩者之中較長字串的函式的示例程式碼:

#include<stdio.h>
#include<string.h>

char *compare(char *str1,char *str2){
    if(strlen(str1)>strlen(str2)){
        return str1;
    }else if(strlen(str1)<strlen(str2)){
        return str2;
    }else{
        char *r = "一樣長";
        return r;
    }
}
void main(){

    char *str1 = "123";
    char *str2 = "1234";
    char *r=compare(str1,str2);
    printf("%s\n",r);
}
列印結果:1234

用指標作為函式返回值時需要注意的一點是,函式執行結束後會銷燬在它內部定義的所有區域性資料,包括區域性變數、區域性陣列和形式引數等,函式返回的指標請儘量不要指向這些臨時資料,誰都不能保證這些臨時的資料一直有效,它們在後續使用過程中可能會引發執行時錯誤。