*指针
int a = 10;
int *b = &a;
a的值是10,&a是a的存放地址
int *b定义一个指针,这个指针指向地址是a的存放地址,*b = 10,b= &a,b是一个地址
int &c = a;
这里的int &c 是对a的引用,c++区别c的一点,其中c = a;是个值,&c = &a,是个地址
b,c的改变会导致a的改变
对于vector的传参,知道主函数调用只需要数组名即可
代码及测试结果
#include <iostream>
#include <vector>
using namespace std;
void test1(vector<int>test1){
test1.back() = -1;
cout << "形式传参函数内数组"<< endl;
for(int num : test1)cout << num << " ";
cout << endl;
}
void test2(vector<int>&test1){
test1.back() = -1;
cout << "地址传参函数内数组"<< endl;
for(int num : test1)cout << num << " ";
cout << endl;
}
int main(){
int a = 10;
int *b = &a;
int &c = a;
cout << "a " << a << endl;
cout << "&a " << &a << endl;
cout << "b = &a " << b << endl;
cout << "*b = a " << *b << endl;\
cout << "c是对a的引用 " << c << endl;
cout << "&c = a " << &c << endl;
*b = 3;
cout << "修改*b值a会跟着改变 " << a << endl;
c = 10;
cout << "修改c值a也会跟着改变 " << a << endl;
cout << "数组传参测试" << endl;
vector<int>test{1,2,3,4,5};
cout << "初始数组"<<endl;
for(int num : test)cout << num << " ";
cout << endl;
test1(test);
cout << "形式传参主函数数组"<<endl;
for(int num : test)cout << num << " ";
cout << endl;
test2(test);
cout << "地址传参后主函数数组"<<endl;
for(int num : test)cout << num << " ";
cout << endl;
return 0;
}