C語言自定義函式怎麼傳參,是一次性把陣列的資料全部傳入嗎

2021-04-18 23:09:06 字數 1689 閱讀 1944

1樓:匿名使用者

1、因為陣列在記憶體來中源

是一塊連續的記憶體,只要將該陣列的首地址傳進去,當然就可以訪問整個陣列了。值得注意的是,由於只傳了首地址,函式不知道陣列的維數,所以還得把陣列的維數傳進去,那就可以完全操作該陣列了。

2、例:有一個函式宣告:void fun( int aa,int size );或者void fun( int *pa,int size );

以上兩種宣告都一樣。

呼叫上訴函式時:假設有 int ab[10];

fun( ab,10 )就可以了。

c語言中,陣列做函式引數如何才能按值傳遞?

2樓:匿名使用者

傳陣列給一

bai個函式,數du組型別自動轉換zhi

為指標型別dao,因而傳的實際是專地址。

void func(int array[10])void func(int array)

void func(int *array)所以以上三種函

屬數宣告完全等同。

實際情況是,陣列做引數,完全無法按值傳遞。這是由c/c++函式的實現機制決定的。

下一個問題是:為什麼偏要按值傳遞呢?當要在一個函式內使用一個陣列時,傳一個指標進去不就行了?只要能訪問到我們所要的資料並對其進行操作,何苦鑽牛角尖。

3樓:一枝梅不落

陣列其實就是指標的退化,陣列名其實就是一個指標。就直接按指標做函式的引數就好,然後將陣列名傳遞進去給函式就行!在函式中對其的訪問也是和陣列的操作類似!具體的可以看一下書!

4樓:匿名使用者

1、陣列做引數,完全無法按值傳遞。這是由c/c++函式的實現機制決定的。回

2、傳陣列答給一個函式,陣列型別自動轉換為指標型別,因而傳的實際是地址。

下面三種函式宣告完全等同:

void func(int array[10])void func(int array)

void func(int *array)

5樓:南坪中學校帥

不可能按值傳遞的,設想一下

type *arr =。。。。。

sizeof(arr)為100萬了位元組,如果按照值傳遞,就要建立版一個臨時變權量temp也為100萬個位元組,效率豈不是太低了。再可能arr是堆記憶體,引數傳遞是要屬性相同,值相同,難道系統自行去new一段記憶體,這該使用者去釋放 還是系統自動**呢?

6樓:林夕之韻

陣列給一個函式,常用的是可把陣列的首地址傳給函式。

即相當於是指標的應用

fun(int array[10])

fun(int array)

fun(int *array)

三種呼叫方法

7樓:匿名使用者

傳陣列給一個函抄數,陣列型別自動轉換為指標型別,因而傳的實際是地址。

void func(int array[10])void func(int array)

void func(int *array)所以以上三種函式宣告完全等同。

實際情況是,陣列做引數,完全無法按值傳遞。這是由c/c++函式的實現機制決定的。

下一個問題是:為什麼偏要按值傳遞呢?當要在一個函式內使用一個陣列時,傳一個指標進去不就行了?只要能訪問到我們所要的資料並對其進行操作,何苦鑽牛角尖。

C語言自定義函式int length(char s ,函式返回字串s的長度

include int length char s int main while 1 return 0 include int length char s int main 效果包你滿意,親 include int length char s int main void while y ch y c...

c語言自定義的函式如何返回陣列,c語言自定義的函式如何返回一個陣列

方法1 利用全域性變數 分析 全域性變數作為c語言的一個知識點,雖然我們都瞭解它的特點,但在實際教學過程中應用得並不是很多。由於全域性變數的作用域是從定義變數開始直到程式結束,而對於編寫有多個返回值的c語言函式,我們可以考慮把要返回的多個值定義成全域性變數。當函式被呼叫時,全域性變數被更改,我們再把...

在c語言中自定義函式的寫法是怎樣的

看你的函式功能是幹什麼,函式開頭用不用int看的是你函式最後要返回什麼值,返回的型別是什麼就用什麼,格式如下 函式返回型別 沒有返回就void,返回整型就int,字元就char等等 函式名 函式引數。例如定義一個加法函式,最後返回整型就 int addfunction int a,int b 自定義...