c++向量的函数传递#include#includeusing namespace std;void abc(int a[]){a[0]=1;a[1]=1;}void main(){vector a(2);abc(a);}刚学c++,很简单的传递,但是还是编译错误,求大神指导

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 00:25:09

c++向量的函数传递#include#includeusing namespace std;void abc(int a[]){a[0]=1;a[1]=1;}void main(){vector a(2);abc(a);}刚学c++,很简单的传递,但是还是编译错误,求大神指导
c++向量的函数传递
#include
#include
using namespace std;
void abc(int a[])
{
a[0]=1;
a[1]=1;
}
void main()
{
vector a(2);
abc(a);
}
刚学c++,很简单的传递,但是还是编译错误,求大神指导

c++向量的函数传递#include#includeusing namespace std;void abc(int a[]){a[0]=1;a[1]=1;}void main(){vector a(2);abc(a);}刚学c++,很简单的传递,但是还是编译错误,求大神指导
#include<iostream>
#include<vector>
using namespace std;
void abc(int a[])
{a[0]=1;a[1]=1;}

void main(){


}


原因:abc()函数的参数是数组类型,数组的传递实际上是指针传递,换句话说abc函数的参数是一个int 类型的指针,因此,你只能获取vector对象中的第1个元素的地址,即a[0]的地址,做为参数,因为a是vector<int>类型的元素,换句话说a里面的元素全部是int类型,用它的第1个元素做数组的起始指针就可以了.


在c++中一般使用引用.比如你上面的abc函数一般
void abc(vector<int> &obj) { obj[0] = 1,obj[1] = 2;}


这时候调用时,就可以直接 abc(a);了


 并不是每一个贴吧,都叫0x30!