for(auto &a:b) , for(auto a:b) , for(const auto &a:b)
b为数组或容器,是被遍历的对象
#include <iostream>
using namespace std;
int main()
{
/*
b为数组或容器,是被遍历的对象
for(auto &a:b),循环体中修改a,b中对应内容也会修改
for(auto a:b),循环体中修改a,b中内容不受影响
for(const auto &a:b),a不可修改,用于只读取b中内容
*/
int arr[5] = {1,2,3,4,5};
for(auto &a:arr) a++;
for(auto a:arr) cout<<a;
for(auto &a:arr) a--;
cout<<endl<<endl;
for(auto a:arr) a++;
for(auto a:arr) cout<<a;
cout<<endl<<endl;
//报错 for(const auto &a:arr) a++; 不能够修改
for(auto a:arr) cout<<a;
return 0;
}
int a , int *a , int &a , const int &a
void fun(int a)
//值传递 无法改变a的值
void fun(int *a)
//地址传递 传入的是a是一个地址
void fun(int &a)
//引用传递 传入的是一个指向a的指针,可直接修改a的值
void fun(const int &a)
//不改变值的引用传递 提高传参效率,同时不允许修改a的值