C語言基礎——指標型函式返回值
阿新 • • 發佈:2019-01-01
既然指標可以作為函式的引數傳給函式,那麼也一定可以作為函式的返回值,返回給呼叫函式。
比如,自己寫一個返回兩者之中較長字串的函式的示例程式碼:
#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
用指標作為函式返回值時需要注意的一點是,函式執行結束後會銷燬在它內部定義的所有區域性資料,包括區域性變數、區域性陣列和形式引數等,函式返回的指標請儘量不要指向這些臨時資料,誰都不能保證這些臨時的資料一直有效,它們在後續使用過程中可能會引發執行時錯誤。