值传递的问题
#include <stdio.h>
void change(int &x, int &y)
{
int temp;
temp = x;
x = y;
y = temp;
}
int main(int argc, char *argv[])
{
int a = 5, b = 10;
change(a, b);
printf( "a=%d,b=%d ", a,b);
return 0;
}
在sco unix下编译怎么会提示出错呢?
cc -o main main.c
"main.c ", line 3.17: 1506-277 (S) Syntax error: possible missing ') ' or ', '?
"main.c ", line 3.13: 1506-172 (S) Parameter type list for function change contains parameters without identifiers.
"main.c ", line 3.21: 1506-172 (S) Parameter type list for function change contains parameters without identifiers.
"main.c ", line 6.16: 1506-045 (S) Undeclared identifier x.
"main.c ", line 7.13: 1506-045 (S) Undeclared identifier y.
[解决办法]
楼主说的这种的交换我好像在哪本书上看到过,说是“直接操作实参法”,但我在tc devc vc下面从来就没有实现过,倒是下面的方法(书上也讲到过的),容易理解些!
#include <stdio.h>
void change(int *x, int *y)
{
int temp;
temp=*x;
*x = *y;
*y =temp;
}
int main(int argc, char *argv[])
{
int a=5, b=10 ;
change(&a, &b);
printf( "a=%d,b=%d ", a,b);
getch();
return 0;
}
[解决办法]
引用好象是C++的东西啊.你用的可能是C编译器?
[解决办法]
自己Unix下编译器的问题罗
[解决办法]
试一下:
g++
gcc
[解决办法]
LZ
你的程序在为我的VC++6.0可以正常编译运行。
[解决办法]
c++才有引用!
[解决办法]
对,C是没有引用的,只能用指针,是C编译器的问题