當前位置:首頁 » 編程語言 » c語言函數的形參是數組

c語言函數的形參是數組

發布時間: 2023-09-25 04:54:02

Ⅰ 在C中想把數組作為函數的一個形參,是怎樣的形式

EG:
void
sortl(float
b[],int
n)/*其中函數參數有兩個:一個是數組,形參的形式是b[],它在調用是接受具體數組的首地址;另一個形參是N,它在調用時數組元素的具體個數。注意用數組作為形參時,數組名是一對空方括弧,而不能寫成b[n],數組元素個數用另一個形參*/
{
int
i,j;
float
t;
for
(i=0;i
b[j])
{
t=b[i];b[i]=b[j];b[j]=t
}
}

c語言中用數組做為形參為什麼形參改變時實參也要變

c語言中數組名作為實參傳給被調用的函數時,形參獲得的是數組的起始地址。
還是用例子說話吧。
#include

int
*arry(int
*a)
{
int
*b;
b
=
a;
int
i;
for(i=0;i<5;i++)
{
printf("%d",a[i]);
}
return
b;
}
int
main()
{
int
a[5]
=
{1,2,3,4,5};
int
*c;
int
i;
c
=
arry(a);
for(i=0;i<5;i++)
{
printf("%d",c[i]);
}
}
主要是通過指針把數組,例如main裡面的a的地址傳入arry函數,然後在arry函數中用一個兼容類型的指針接收地址,然後就可以再這個指針下的地址操作地址上面的數據了。
arry返回的時候也是返回一個指針(地址)。

Ⅲ C語言中函數定義形參為數組時的問題

1.數組為參數傳遞的是數組首地址,而不是元素的值,而你說的a[size]僅僅是值,況且事實上也沒有a[size]這個元素
2.既然是數組名的傳遞,當然需要由一個數組的參數來接收,int v[]」的問題是因為他是形式參數,是為了接收數組的
n的問題是因為,如果只傳遞了數組,但是函數並找不到數組的個數,所以需要把數組大小傳遞過來

Ⅳ c語言 函數調用(形參為數組名的情況)

#include <stdio.h>
void sort(int a[20])
{ int i,j,k,t;
for(i=0;i<19;i++)
{ k=i;
for(j=i+1;j<20;j++)
if(a[k]>a[j]) k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
void main()
{ int a[20]={2,5,7,8,4,10,48,96,65,74,35,84,15,38,52,56,60,20,17,80};
sort(a);
}
沒問題
我調試過了
記得給我加分

Ⅳ 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

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

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

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

(6)c語言函數的形參是數組擴展閱讀:

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

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

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

熱點內容
linux源碼學習 發布:2025-03-06 02:06:05 瀏覽:555
極坐標圖編程 發布:2025-03-06 01:52:23 瀏覽:304
centos訪問網頁 發布:2025-03-06 01:51:18 瀏覽:972
海康威視華為雲伺服器 發布:2025-03-06 01:36:20 瀏覽:701
安卓手機怎麼把三張圖片拼在一起 發布:2025-03-06 01:31:50 瀏覽:320
文件夾刪除不了許可權 發布:2025-03-06 01:28:06 瀏覽:302
如何上傳swf 發布:2025-03-06 01:18:22 瀏覽:366
安卓機有什麼好玩的游戲 發布:2025-03-06 01:15:47 瀏覽:569
外鍵約束sql 發布:2025-03-06 01:07:53 瀏覽:64
魯大師代理伺服器如何設置 發布:2025-03-06 01:07:52 瀏覽:139