int &x,和int& x,一样的,还是不一样?仅仅只是一个习惯?

解决方案 »

  1.   

    认为一样
    会产生同样的汇编代码int &xlea         eax,[ebp-4]
    mov         dword ptr [ebp-8],eaxint& xlea         eax,[ebp-4]
    mov         dword ptr [ebp-8],eax
      

  2.   

    目前没看到编译器把它们当成两个东西来处理。
    在林锐博士的《C++高质量编程》中有详细讲解为什么会有int*  a;和int  *a;
    他是这么说的:
    第一种让人看上去一眼就知道a是一个int型的指针,但是为什么还有第二种呢?原因如下面语句:
    int*   a,b;这条语句让人乍眼一看好像b也是int*型的变量,所以这种写法就不如下面的语句:
    int    *a,b;