首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

cannot convert parameter 1 from 'int *' to 'int &'解决思路

2012-02-16 
cannot convert parameter 1 from int * to int &inttest1(int&e){e10return1}voidmain(){int*ein

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(楼主请点我加分^_^不用客气)
正解

热点排行