c语言问题,求高手解答!
请看这个程序#include"stdio.h"voidmain(){voidswap(int*p1,int*p2);inta,b;int*pointer_1,*point...
请看这个程序#include "stdio.h"
void main()
{void swap(int*p1,int *p2);
int a,b;
int *pointer_1,*pointer_2;
scanf("%d,%d",&a,&b);
pointer_1=&a;pointer_2=&b;
if(a<b) swap(pointer_1,pointer_2);
printf("\n%d,%d\n",a,b);
}
void swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
编译的时候不会出现问题。但是如果将scanf("%d,%d",&a,&b);移到第5行变成
#include "stdio.h"
void main()
{void swap(int*p1,int *p2);
int a,b;
scanf("%d,%d",&a,&b);
int *pointer_1,*pointer_2;
pointer_1=&a;pointer_2=&b;
if(a<b) swap(pointer_1,pointer_2);
printf("\n%d,%d\n",a,b);
}
void swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
则系统会提示
--------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
1.c
D:\c\1.c(6) : error C2143: syntax error : missing ';' before 'type'
D:\c\1.c(7) : error C2065: 'pointer_1' : undeclared identifier
D:\c\1.c(7) : warning C4047: '=' : 'int ' differs in levels of indirection from 'int *'
D:\c\1.c(7) : error C2065: 'pointer_2' : undeclared identifier
D:\c\1.c(7) : warning C4047: '=' : 'int ' differs in levels of indirection from 'int *'
D:\c\1.c(8) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'int '
D:\c\1.c(8) : warning C4024: 'swap' : different types for formal and actual parameter 1
D:\c\1.c(8) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'int '
D:\c\1.c(8) : warning C4024: 'swap' : different types for formal and actual parameter 2
执行 cl.exe 时出错.
1.obj - 1 error(s), 0 warning(s)
本人是菜鸟级别的,求高手解答,非常感谢!
我用的是vc++6.0,
还有系统检测的错误为什么会那么多?比如第一个D:\c\1.c(6) : error C2143: syntax error : missing ';' before 'type',我觉得也没少";"这个符号啊。。。 展开
void main()
{void swap(int*p1,int *p2);
int a,b;
int *pointer_1,*pointer_2;
scanf("%d,%d",&a,&b);
pointer_1=&a;pointer_2=&b;
if(a<b) swap(pointer_1,pointer_2);
printf("\n%d,%d\n",a,b);
}
void swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
编译的时候不会出现问题。但是如果将scanf("%d,%d",&a,&b);移到第5行变成
#include "stdio.h"
void main()
{void swap(int*p1,int *p2);
int a,b;
scanf("%d,%d",&a,&b);
int *pointer_1,*pointer_2;
pointer_1=&a;pointer_2=&b;
if(a<b) swap(pointer_1,pointer_2);
printf("\n%d,%d\n",a,b);
}
void swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
则系统会提示
--------------------Configuration: 1 - Win32 Debug--------------------
Compiling...
1.c
D:\c\1.c(6) : error C2143: syntax error : missing ';' before 'type'
D:\c\1.c(7) : error C2065: 'pointer_1' : undeclared identifier
D:\c\1.c(7) : warning C4047: '=' : 'int ' differs in levels of indirection from 'int *'
D:\c\1.c(7) : error C2065: 'pointer_2' : undeclared identifier
D:\c\1.c(7) : warning C4047: '=' : 'int ' differs in levels of indirection from 'int *'
D:\c\1.c(8) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'int '
D:\c\1.c(8) : warning C4024: 'swap' : different types for formal and actual parameter 1
D:\c\1.c(8) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'int '
D:\c\1.c(8) : warning C4024: 'swap' : different types for formal and actual parameter 2
执行 cl.exe 时出错.
1.obj - 1 error(s), 0 warning(s)
本人是菜鸟级别的,求高手解答,非常感谢!
我用的是vc++6.0,
还有系统检测的错误为什么会那么多?比如第一个D:\c\1.c(6) : error C2143: syntax error : missing ';' before 'type',我觉得也没少";"这个符号啊。。。 展开
6个回答
展开全部
不是C语言的规定
有的编译器不支持随意位置声明,比如VC6中,就只能在外部或花括号{后才能声明
有些编译器就随便什么位置都可以声明,比如C-FREE
有的编译器不支持随意位置声明,比如VC6中,就只能在外部或花括号{后才能声明
有些编译器就随便什么位置都可以声明,比如C-FREE
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;}
main()
{int a,b;
int *pointer_1,*pointer_2;
scanf("%d%d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if(a<b)
swap(pointer_1,pointer_2);
printf("%d,%d",pointer_1,pointer_2);
}
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;}
main()
{int a,b;
int *pointer_1,*pointer_2;
scanf("%d%d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if(a<b)
swap(pointer_1,pointer_2);
printf("%d,%d",pointer_1,pointer_2);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说实话 我是觉得没什么问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-03-18
展开全部
没问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int 语句放前面 TC就不支持,不知道你用的什么编译软件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询