當前位置:首頁 » 編程語言 » c語言參數能不能傳數組
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言參數能不能傳數組

發布時間: 2022-10-03 15:23:24

c語言中,數組名作為函數參數,屬於什麼傳遞,為什麼

C語言中,數組名作為函數參數,屬於數組參數傳遞。在VB6.0中,允許使用數組作為實參傳遞到子過程的形參中,數組傳遞必須採用地址傳遞的方式來傳遞參數。

數組型變數名本身只是該數組所佔存儲空間的首地址,函數調用時,系統不會為形參分配數組存儲空間,而是僅僅分配一個存放數組地址(第一個元素地址)的存儲空間,此後,將實參數組的首地址傳遞給形參變數。

(1)c語言參數能不能傳數組擴展閱讀:

數組參數在傳遞時應注意以下兩個方面:

1、 在實參和形參列表中只寫數組名,忽略維數的定義,但圓括弧不能省,當數組作為參數傳遞時,系統將實參數組的起始地址傳給過程,使形參數組也具有與實參數組相同的起始地址,若參數是多維數組,每維以逗號分隔。

2、被調過程可分別通過Lbound和Ubound函數確定實參數組的下界和上界。

❷ c語言:關於參數傳遞數組

嗯,一般傳遞數組是這樣的:
int a[3]={1,2,3}; //定義數組
void fun(int [],int length); //申明函數,第一個參數是數組頭地址,第二個參數是數組長度
fun(a,sizeof(a)/sizeof(int)) ; //調用函數,a為數組頭地址,sizeof()獲取位元組數。
所以你的程序有點解釋不清,呵呵~~~還是按照一般的規范來編程會好點。
具體點你的程序應該是這樣的:
x(int [ ], int length){
}
main()
{int a[10];
x(a,sizeof(a)/sizeof(int));
}

❸ c語言 數組作為參數傳遞

調用時把【】去掉,表示掉用這個數組的所有元素,數組的名稱表示數組第一個元素的地址。
數組的定義可以寫成:
int
table[]={1,2,3,}
或者table[3],不能寫成table[],因為系統在定義數組時就給數組分配了地址,table[]沒有確定元素的個數,不能分配地址空間。
但是作為形參,可以這樣寫,void
tab(int
table[])
,不知道為什麼,呵呵

❹ C語言 數組作為參數傳遞問題

  • 以下是我寫的一個簡單的例子,一維數組和二維數組傳參。

❺ 在C語言中,數組作為參數,是怎樣在函數之間傳遞的啊

數組作為參數是按地址傳遞的
數組名就是數組的首地址。因此在數組名作函數參數時所進行的傳送只是地址的傳送, 也就是說把實參數組的首地址賦予形參數組名。形參數組名取得該首地址之後,也就等於有了實在的數組。實際上是形參數組和實參數組為同一數組,共同擁有一段內存空間。

❻ C語言中如何將二維數組作為函數的參數傳遞

在c語言中可以用二維數組作為實參或者形參。
1、函數中用二維數組作為形參,函數聲明中可以指定所有維數的大小,也可以省略第1維的維數如:
void f(int array[3][10]); //正確
void f(int array[][10]); //正確上面的兩種二維數組形參表示都是正確的。
2、函數中用二維數組作為形參,不能把第2維或者更高維的大小省略,如下面的定義是不合法的:
void f(int array[][]); //錯誤

因為從實參傳遞來的是數組的起始地址,在內存中按數組排列規則存放(按行存放),而並不區分行和列,如果在形參中不說明列數,則系統無法決定應為多少行多少列,不能只指定一維而不指定第二維,下面寫法是錯誤的:

void f(int array[3][]); //錯誤 3、二維數組作為實參傳遞時,必須保證實參第2維的維數與形參第2維的維數相同,因為必須要保證形參和實參的數據類型一致。比如定義如下函數:
void f(int array[][10]);可以將如下數組傳遞給函數f。
int a[2][10] = {1,2,3,4};
int b[4][10] = {1};

❼ c語言函數怎麼傳數組

C和C++都沒有辦法傳數組,只能傳「指針」,指針和數組的差別就在於函數內無法檢測數組的尺寸

❽ C語言里可以將數組作為參數,以值的方式傳遞給函數嗎

如果是只傳數組的數值的話,是做不到的。
如果傳數組中某個值的地址的話,是可以做到的。
簡單來說:只能以傳數組地址的方法來實現。

❾ c語言怎麼將數組作為函數參數傳入

一維數組的元素作為函數實參,與同類型的簡單變數作為實參一樣,是單向的值傳遞,即數組元素的值傳給形參,從而形參是改變不影響實參

數組名代表著整個數組的地址,如果一維數組的名字作為函數實參,傳遞的是整個數組,即形參數組和實參數組完全相同,是存放在同一存儲空間的同一個數組。這樣形參數組
修改時,實參數組也同時被修改了。形參數組的元素個數可以省略。
#include<stdio.h>

//數組作為函數參數,可以省略元素個數
//數組作為函數參數,傳遞是整個數組的地址,修改了函數形參數組元素的值,會影響到外面的實參數組
void change(int array[])
{
printf("array ==%p\n",array);

array[0] = 100;
}

int main()
{
int ages[6] = {10,11,13,15,11,18};

printf("array ==%p\n",ages);

change(ages);

printf("%d\n",ages[0]);

return 0;

}

輸出結果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100