例:
我們提供的服務有:網站設計制作、網站設計、微信公眾號開發(fā)、網站優(yōu)化、網站認證、龍子湖ssl等。為成百上千家企事業(yè)單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的龍子湖網站制作公司
#includestdio.h
void?fact(int?*p,?int?n)
{
for(i?=?0;?i??n;?++i)
{
printf("%d?",?p?+?i);
}
printf("\n");
p[3]?=?6;
}
int?main()
{
int?a[5]?=?{1,?2,?3,?4,?5};
fact(a,?5);
for(i?=?0;?i??5;?++i)
{
printf("%d?",?a[i]);
}
printf("\n");
return?0;
}
數(shù)組作為參數(shù)是按地址傳遞的
數(shù)組名就是數(shù)組的首地址。因此在數(shù)組名作函數(shù)參數(shù)時所進行的傳送只是地址的傳送, 也就是說把實參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實在的數(shù)組。實際上是形參數(shù)組和實參數(shù)組為同一數(shù)組,共同擁有一段內存空間。
屬于地址傳遞,在函數(shù)里修改的話,將直接影響調用方的數(shù)值。這是因為數(shù)組名代表這個數(shù)組的首地址,不過是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標時,就是找到這個數(shù)組第i號元素的地址進行修改的。所以是第于是地址傳遞。
c語言中、數(shù)組在函數(shù)中的傳遞可以數(shù)組元素的傳遞!還有就是數(shù)組名的傳遞!其實、數(shù)組名的傳遞類似指針!就是把數(shù)組的元素的首地址傳到形參的!
C和C++都沒有辦法傳數(shù)組,只能傳“指針”,指針和數(shù)組的差別就在于函數(shù)內無法檢測數(shù)組的尺寸
很簡單的,數(shù)組作為函數(shù)參數(shù)傳遞的時候只要是數(shù)組名就可以了,因為數(shù)組名本身就是數(shù)組的首地址 .給個程序看看
#includestdio.h
#define N 3
int array[N][N];
void main()
{
//在主函數(shù)內聲明被調函數(shù)
void convert(int array[][3]);
int i,j;
printf("輸入數(shù)組:\n");
for(j=0;jN;j++)
for(i=0;iN;i++)
scanf("%d",array[i][j]);
printf("\n");
for(j=0;jN;j++)
{
for(i=0;iN;i++)
printf("%d\t",array[i][j]);
printf("\n");
}
//調用矩陣轉置函數(shù)
convert(array);
printf("\n");
for(i=0;iN;i++)
{
for(j=0;jN;j++)
printf("%d\t",array[i][j]);
printf("\n");
}
}
void convert(int array[][3])
{
int i,j,t;
for(i=0;iN;i++)
for(j=0;jN;j++)//設置數(shù)組中轉置矩陣元素交換
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}