c語言返回值函數調用
㈠ c語言中調用函數的返回值,如果是數組,主函數要輸出這個數組怎麼實現啊
用指針,另外保存數據的變數退出函數時不得消失。
例如:
#include<stdio.h>
int * fun(int n)
{
int i;
static int a[100]; // 這里用static
for (i=0;i<n;i++) a[i]=i;
return &a[0];
}
void main()
{
int i,n=5;
int *p; // 聲明指針
p = fun(n); // 返回指針
for (i=0;i<n;i++) printf("%d ",p[i]); // 把 p 看成數組來輸出
}
得 0 1 2 3 4
(1)c語言返回值函數調用擴展閱讀:
注意事項
1、數組宏棚的維度必須是一個常蔽段則量表達式
int main(void)
{
constexpr int i = 20;
int j = 5;//不是常量表達式
int arr1[i];//正確
int arr2[j];//錯誤
system("燃宏pause");
return 0;
}
2、默認情況下,數組的元素被默認初始化。
而且需要注意的是,和內置類型的變數一樣,如果在函數內部定義了某種內置類型的數組,那麼默認初始化會令數組有未定義的值。
㈡ c語言中調用函數如何返回多個值
1、通過使用指針,在函數調用時,傳遞帶有地址的參數,並使用指針更改其值;這樣,修改後的值就會變成原始參數。
㈢ c語言中,函數返回值怎麼用
return後接數蔽一個值。 在調用這個函數的函數裡面,調用它的時候希望獲得一個值,如果不希望獲得這個值的時候,用void聲明就好。如果需要,比如說需要得到一個整形值 就聲明 int func() 在調用它的比如main裡面 func()的作用就可以相當於一個int型常數 比如外面定義了 int max(int a,int b) { return a>b?a:b; } 主函數裡面是 main() { int A; A=max(1,2); } 這時候就是通過max計算 1>2 則return 一個1 ,謹畢孫1<2 則return一個2。很明顯1<2 所以這里max(1,2)就會return 一個 2 這時候主函數里的max(1,2)就相當於一個常數 2 A=max(1,2)的作祥鏈用就相當於A=2 這個意思。
㈣ C語言 函數返回值是什麼
函數的值(或稱函數返回值)是指函數被調用之後,執行函數體中的程序段所取得的值,可以通過return語句返回。
return語句的一般形式為:
return 表達式;
或者:
return (表達式);
例如:
return max;
return a+b;
return (100+200);
函數中可以有多個 return 語句,但每次調用只能有一個return 語句被執行,所以只有一個返回值。
一旦遇到 return 語句,不管後面有沒有代碼,函數立即運行結束,將值返回。例如:
int func(){
int a=100, b=200, c;
return a+b;
return a*b;
return b/a;
}
返回值始終 a+b 的值,也就是300。
沒有返回值的函數為空類型,用void進行說明。例如:
void func(){
printf("Hello world!\n");
}
一旦函數的返回值類型被定義為 void,就不能再接收它的值了。例如,下面的語句是錯誤的:
int a = func();
為了使程序有良好的可讀性並減少出錯, 凡不要求返回值的函數都應定義為空類型。
㈤ c語言中調用函數如何返回多個值
建立數組,返回指針。
在要返回的兩個值類型相同時,可以用創建數組的方式,將要返回的值存在數組中,並返回數組首地址,這樣就可以實現返回兩個值的效果。需要注意的是,要返回數組首地運首掘址,那麼返回的值不可以是局部變數,有如下幾種是可以的:
a) 使用靜態局部變數存儲,並返回地址;
b) 使用全局變數存儲,返回地址;
c) 函數中動態分配內存,並返回申請到的地址,此種方法需要注意,在使用後需要釋放;
d) 在參數中傳入數組地址,並返回。即返回的實際上是主調函數中的變數地址。
(5)c語言返回值函數調用擴展閱讀
通常我們希望通過函數調用使主調函數能得到一個確定的值,這就是函數的返回值。函數的返回值是通過函數中的 return 語句獲得的。return 語句將被調函數中的一個確定的值帶回到主調函數中,供主調函數使用。
函數的返回值類型是在定義函數時指定的。return 語句中表達式的類型應與定義函數時指芹氏定的返回值類型一致。如果不一致,則以函數定義時的返回值類型為准,對 return 語句中表達式的類型自動進行轉換,然後再將它返回給主調函數使用。
在調用函數時,如果需要從被調函數返回一個值供主調旁核函數使用,那麼返回值類型必須定義成非 void 型。此時被調函數中必須包含 return 語句,而且 return 後面必須要有返回值,否則就是語法錯誤。
如果函數有返回值,那麼 return 語句後面的括弧可以不要,比如「return(z);」等價於「return z;」。若不需要返回值則可以不要 return 語句。
需要強調的是,一個函數中可以有多個 return 語句,但並不是所有的 return 語句都起作用。執行到哪個 return 語句,就是哪個 return 語句起作用,該 return 語句後的其他語句就都不會執行了。