Welcome

首页 / 软件开发 / C语言 / 彻底搞定C语言指针 第五篇

彻底搞定C语言指针 第五篇2010-01-01千里草一、三道考题

开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行 ……唉呀,谁扔我鸡蛋?)

1.考题一:程序代码如下:

void Exchg1(int x, int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf (“x=%d,y=%d ”,x,y)
}
void main()
{
int a=4,b=6;
Exchg1 (a,b) ;
printf(“a=%d,b=%d ”,a,b)
}

输出的结果 :

x=____, y=____

a=____, b=____

问下划线的部分应是什么,请完成。

2.考题二:代码如下。

Exchg2(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
print(“*px=%d,*py=%d ”,*px,*py);
}
main()
{
int a=4;
int b=6;
Exchg2( &a,&b);
Print (“a=%d,b=%d ”, a, b);
}

输出的结果为:

*px=____, *py=____

a=____, b=____

问下划线的部分应是什么,请完成。

3.考题三:

Exchg2(int &x, int &y)
{
int tmp=x;
x=y;
y=tmp;
print(“x=%d,y=%d ”,x,y);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d ”, a, b);
}

输 出的结果:

x=____, y=____

a=____, b=____

问下划线的部分输出的应是什么, 请完成。

你不在机子上试,能作出来吗?你对你写出的答案有多大的把握?

正确的答案 ,想知道吗?(呵呵,让我慢慢地告诉你吧!)

好,废话少说,继续我们的探索之旅了。

我们都知道:C语言中函数参数的传递有:值传递,地址传递,引用传递这三种形式。题一为值 传递,题二为地址传递,题三为引用传递。不过,正是这几种参数传递的形式,曾把我给搞得晕头转向 。我相信也有很多人与我有同感吧?

下面请让我逐个地谈谈这三种传递形式。