好友
阅读权限35
听众
最后登录1970-1-1
|
本帖最后由 SupKevin 于 2017-4-4 17:15 编辑
# include <stdio.h>
int main(void)
{
voidhuhuan(int * p,int * q);
inta =3;
intb = 4;
huhuan(&a,&b);
printf("%d%d",a,b);
return0;
}
void huhuan(int * p,int * q)
{
intt;
t= *p;
*p= *q;
*q= t;
}
上面的例子是利用指针互换两个数字的经典题目,
当给a,b分配好了空间以后就,
其中p q 的内容在这里可以理解为a,b的原始地址。改变的只是a,b的地址(其实这样说也是不准确的,因为,当a,b分配好了内存之后就马上释放掉了)下面的是正确的代码:
# include <stdio.h>
int main(void)
{
voidhuhuan(int * p,int * q);//函数的声明
inta =3;
intb = 4;
huhuan(&a,&b);
//因为下面的函数定义的是int * 型的,传给所以这个地方是(&a,&b)而不是(a,b);如果还是(a,b)的话,与int *型不符。具体的流程是1.int a;int b 2.触发huhuan(&a,&b);3.调用函数void huhuan(int * p,int * q)实现功能。
printf("%d%d",a,b);
return0;
}
void huhuan(int * p,int * q)
{
intt;
t= *p;
*p= *q;
*q= t;
}
看到这里的时候顺便复习巩固了一下函数的一些细小的问题,当时对于函数调用的流程没怎么仔细看,现在就以上面的例子说明一下,顺便提醒一下自己。所有的说明在上例中用注释一一列出。 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|