读书人

cannot convert parameter 1 from #039;in

发布时间: 2012-02-16 21:30:36 作者: rapoo

cannot convert parameter 1 from 'int *' to 'int &'
int test1(int &e)
{
e=10;
return 1;
}

void main()
{
int *e;
int k=test1(e); //这句出错,我的文件是.cpp
*e=20;
//if(test(e)==1)
if(k)
printf( "%d\n ",e);
}

cannot convert parameter 1 from 'int * ' to 'int & '
A reference that is not to 'const ' cannot be bound to a non-lvalue


如果我的文件改为.c来编译会出错
int test1(int &e) //这句出错,在.c的情况下
//error C2143: syntax error : missing ') ' before '& '
//error C2143: syntax error : missing '{ ' before '& '
//error C2059: syntax error : '& '
//error C2059: syntax error : ') '
{
e=10;
return 1;
}

void main()
{
int *e=20;
int k=test1(e);//这句提示warning C4013: 'test1 ' undefined; assuming extern returning int

if(k)
printf( "%d\n ",e);
}

[解决办法]
int k=test1(e);
改为
test1(*e);
[解决办法]
把指针传给引用?这两者不一样,不能互相传
[解决办法]
引用传递参数,调用方式和按值调用的形式上是一样的
不能将指针作为引用传参数
xlfddlfd(楼主请点我加分^_^不用客气)
正解

读书人网 >C++

热点推荐