⑴ 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
⑶ C語言數組傳遞到另一個函數中
voidfunction1(){
voidfunction2(int*a,intn);//函數聲明
inta[2]={1,2};
function2(a,2);//調用函數
}
voidfunction2(int*a,intn)//函數定義,這樣就可以了
{
intc,i;
for(i=0;i<n;i++){
c=a[i];
printf("%d",c);
}
}
⑷ 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語言技巧:怎樣把數組作為參數傳遞給函數
使用pointer(指針)即可.
ex:
voidfunc(int*ptr,intlen);
intarray[10];
test()
{
....
func(&array[0],10);//將第一個指針傳過去,並帶上長度
....
}
⑹ 在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語言中怎麼將數組作為函數傳遞初學,求解
屬於地址傳遞,在函數里修改的話,將直接影響調用方的數值。這是因為數組名代表這個數組的首地址,不過是靜態不可更改的而已。在函數里用引用[i]下標時,就是找到這個數組第i號元素的地址進行修改的。所以是第於是地址傳遞。
⑼ C語言中,數組做函數參數如何才能按值傳遞
傳數組給一個函數,數組類型自動轉換為指針類型,因而傳的實際是地址。
void func(int array[10])
void func(int array[])
void func(int *array)
所以以上三種函數聲明完全等同。
實際情況是,數組做參數,完全無法按值傳遞。這是由C/C++函數的實現機制決定的。
下一個問題是:為什麼偏要按值傳遞呢?當要在一個函數內使用一個數組時,傳一個指針進去不就行了?只要能訪問到我們所要的數據並對其進行操作,何苦鑽牛角尖。