當前位置:首頁 » 編程語言 » c語言數組傳遞

c語言數組傳遞

發布時間: 2022-09-03 09:40:39

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

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

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

很簡單的,數組作為函數參數傳遞的時候只要是數組名就可以了,因為數組名本身就是數組的首地址 .給個程序看看

#include<stdio.h>
#define N 3
int array[N][N];
void main()
{
//在主函數內聲明被調函數
void convert(int array[][3]);
int i,j;
printf("輸入數組:\n");
for(j=0;j<N;j++)
for(i=0;i<N;i++)
scanf("%d",&array[i][j]);
printf("\n");
for(j=0;j<N;j++)
{
for(i=0;i<N;i++)
printf("%d\t",array[i][j]);
printf("\n");
}
//調用矩陣轉置函數
convert(array);
printf("\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d\t",array[i][j]);
printf("\n");
}
}
void convert(int array[][3])
{
int i,j,t;
for(i=0;i<N;i++)
for(j=0;j<N;j++)//設置數組中轉置矩陣元素交換
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}

㈢ 關於c語言中的結構體數組作為函數參數傳遞的

1、結構體數組傳給指針,實質上是不可能的,本質上傳的是數組首地址,根據偏移來操作數組,這樣看起來好像是真在操作數組一樣。就和普通指針一樣使用,只不過它是結構體數組。
2、常式:

typedefstructStudent
{
charname[10];
intage;
}Student;
#defineLEN10
//printallStudentinfomation
voidfun(Student*pStu,intlen)
{
inti;
for(i=0;i<len;++i)
{
printf("%s %d",pStu[i].name,pStu[i].age);
}
}
intmain()
{
Studentstu[LEN];
fun(stu,LEN);

}

㈣ c語言的數組怎麼傳遞到函數裡面

例:
#include<stdio.h>
voidfact(int*p,intn)
{
for(i=0;i<n;++i)
{
printf("%d",p+i);
}
printf(" ");
p[3]=6;
}
intmain()
{
inta[5]={1,2,3,4,5};
fact(a,5);
for(i=0;i<5;++i)
{
printf("%d",a[i]);
}
printf(" ");
return0;
}

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

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

㈥ C語言中,數組做函數參數如何才能按值傳遞

傳數組給一個函數,數組類型自動轉換為指針類型,因而傳的實際是地址。

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

所以以上三種函數聲明完全等同。

實際情況是,數組做參數,完全無法按值傳遞。這是由C/C++函數的實現機制決定的。

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

㈦ c語言數組在函數中的傳遞

c語言中、數組在函數中的傳遞可以數組元素的傳遞!還有就是數組名的傳遞!其實、數組名的傳遞類似指針!就是把數組的元素的首地址傳到形參的!

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

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

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

(8)c語言數組傳遞擴展閱讀:

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

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

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

㈨ 請問在C語言中,函數傳參時怎樣利用指針傳遞數組

數組名就是指針,例如:

#include <stdio.h>

voidpr(char *p)

{

printf(p);

}

void main(void)

{

char s[] = "abc";

pr(s);

}

(9)c語言數組傳遞擴展閱讀:

注意事項

非數組類的聲明盡量以指針的方式進行比較好。倘若一個指針指向的內存並不是一個數組,那麼採用數組名的聲明方式或許就會給人產生錯誤的引導。類似的,如果指向的是一個數組區域,則會給人以更加豐富的信息。例如:

int main(int argc,char* argv[])

{

/* code here */

}

int main(int argc,char** argv)

{

/* code here */

}

兩種方式完全等價,但是前面一種能夠更清晰地看出:這個參數是指向某個元素起始地址的指針,而後面的這種方式則不能夠直觀地看出這種含義。

熱點內容
伺服器可以變電腦使用嗎 發布:2025-01-15 19:40:29 瀏覽:200
傳奇手游免費腳本 發布:2025-01-15 19:30:21 瀏覽:300
我國當前資源配置存在哪些問題 發布:2025-01-15 19:25:03 瀏覽:513
存儲在哪裡呀 發布:2025-01-15 19:11:39 瀏覽:450
pythonuniquelist 發布:2025-01-15 19:10:41 瀏覽:477
怎麼升安卓系統下載 發布:2025-01-15 19:04:27 瀏覽:894
mcrypt擴展php 發布:2025-01-15 19:01:12 瀏覽:436
html源碼解析 發布:2025-01-15 19:01:10 瀏覽:223
網路硬碟錄像機存儲 發布:2025-01-15 18:48:20 瀏覽:894
大學生java課程培訓 發布:2025-01-15 18:45:53 瀏覽:487