谁帮我看看这个小小小的C程序

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:46:01
#include<stdio.h>
void my(int,int)
main()
{
int a,b,*p,*q;
p=&a;q=&b;
*p=8;*q=0;
my(a,b);
printf("%d %d\n",a,b);

}
void my(int a,int b)
{
int t;
t=a;a=b;b=t;
}

VC提示的错误是:谁告诉我是那里错了
E:\Microsoft Visual Studio\MyProjects\test\test.c(166) : error C2061: syntax error : identifier 'main'
E:\Microsoft Visual Studio\MyProjects\test\test.c(166) : error C2059: syntax error : ';'
E:\Microsoft Visual Studio\MyProjects\test\test.c(166) : error C2059: syntax error : ')'
Error executing cl.exe.
我还想知道 为什么 这个小程序不能交换a和b的值呢?

上面的都说了,你只是在void my(int,int)声明的后面少了分号。
也可以把void my(int,int)这个函数的实现放在main函数的前面,如下:

#include<stdio.h>

void my(int a,int b)
{
int t;

t=a;a=b;b=t;
}

main()
{
int a,b,*p,*q;

p=&a;q=&b;
*p=8;*q=0;
my(a,b);
printf("%d %d\n",a,b);
}

另外,该程序输出为:8 0
my函数的功能是交换a和b的值,但它是不能传递到my函数外面的
这里是传值,如果传地址的话,就可以传递到my函数外面了
这就是函数的传值和传地址的区别了

在void my(int,int)这里后面价格分号就行了。

#include<stdio.h>
void my(int,int)
少了个分号
#include<stdio.h>
void my(int,int);