作者hateexam ()
看板C_and_CPP
標題[問題] 函式傳遞的問題
時間Fri May 22 05:19:55 2009
為什麼這個問題-->見連結例子與其最佳答案
http://zhidao.baidu.com/question/98153744.html
必須用call by address才能正確傳遞函式間的結果
而以下寫法不用call by address也能正確回傳a[n]的結果呢
#include"stdio.h"
void F1(int a[]);
#define N 5
void main()
{
int i,a[N];
printf("\n請您輸入任意的五個整數:\n");
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
printf("\n排序后的數列為:\n");
F1(a);
for(i=0;i<N;i++)
printf("%d ",a[i]);
//<--為何F(a)寫法不是用call by address也能正確重新編排a[i]內容的排序???
printf("\n");
}
/*對任意的5個整數進行由大到小的排序!*/
void F1(int a[])
{
int i,j,temp;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-1;j++)
{
if(a[j+1]>a[j])
{
temp=a[j] ;
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
--
你知道每年全球有多少人死於飢餓嗎?美國的「The Hunger site」
http://www.thehungersite.com/clickToGive/home.faces?siteId=1 網站上只要網友
每天上網按一次,他們就會聯合世界企業家,捐給世界各地饑民一碗食物,
光是去年一整年,「The Hunger site」就送出了4,800萬碗食物給世界各地需要的
饑民.只要連上網路,動動你的滑鼠,加入首頁,每天擊點一次就可以幫助一個人,
--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: hateexam 來自: 218.172.107.241 (05/22 05:22)
推 littleshan:在函式的參數列寫 int a[] 和 int* a 是一樣的意思 05/22 08:09
推 sanforever:呼叫寫陣列的名字a,就是傳陣列開頭的位址進去 05/22 10:08
→ hateexam:所以傳入陣列的a寫法相當於整數型態傳入的&a嗎 05/22 16:48
→ VictorTom:小弟覺得您可能要把指標的觀念與運用再研究一下喔:) 05/22 22:23
→ VictorTom:varible vs address vs pointer vs array 彼此的關係. 05/22 22:25