作者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)
1F:推 littleshan:在函式的参数列写 int a[] 和 int* a 是一样的意思 05/22 08:09
2F:推 sanforever:呼叫写阵列的名字a,就是传阵列开头的位址进去 05/22 10:08
3F:→ hateexam:所以传入阵列的a写法相当於整数型态传入的&a吗 05/22 16:48
4F:→ VictorTom:小弟觉得您可能要把指标的观念与运用再研究一下喔:) 05/22 22:23
5F:→ VictorTom:varible vs address vs pointer vs array 彼此的关系. 05/22 22:25