C程序查错

来源:百度知道 编辑:UC知道 时间:2024/07/02 05:27:49
#include "stdio.h"
main()
{
int a,b;
long c;
clrscr();
printf("input a,b;");
scanf("%d%d",&a,&b);
fun(a,b,&c);
printf("the result is:%d\n",c);
}
void fun(int a,int b,long *c)
{
*c=(b%10)*1000+(b/10)*100+(a%10)*10+(a/10);
}
这个*c不是指针吗?怎么会用long来定义?这是一道例题,真不知道连例题都运行不出来的书怎么看~~

将fun函数前的void去掉!

*c是long型指针啊,其实叫引用更合适吧。
void fun(int a,int b,long *c)
其中c用传址方式,这样*c就直接改变了main里long c的内容。
所以最后结果打印的才是操作后的结果
但是printf里long型用%ld更好些

可能是书上印刷错误了~~~~~