C++几种初始化的方式:

 

#include<iostream>

int main()
{
    int a=0;//直接用等号初始化
    int b={1};//用等号和花括号
    int c{2};//直接用花括号
    int d(3);//直接用括号   
    std::cout<<a<<b<<c<<d<<std::endl;

    return 0;
}

打印:0123

 

 

引用:相当于为对象取了另外一个名字,即别名。引用只能绑定到对象上,而不能与字面值和表达式的结果绑定到一起

 

#include<iostream>

int main()
{
      int a=0;
      int &a1=a;
      //int &a2;错误,引用必须被初始化
      //int &a3=10;错误,只能与对象绑定
      std::cout<<a1<<std::endl;

      a1=1;//改变引用的值
      std::cout<<a1<<std::endl;

      return 0;
   
}

打印:0

 

            1

 

指向指针的引用:指针本身是一个对象,所以可以引用。但引用本身不是一个对象

 

#include<stdio.h>

int main()
{
     int a=1;
     int *p=&a;
     int *&p1=p;

     std::cout<<*p1<<std::endl;
     return 0;

}

打印:1

 

关于p1一看似乎不能快速理解其类型,正确方式应从右往左看,先是&表示引用,再*表示指针,合起来就是指针的的引用