天天看点

c++基础知识拾遗

------------------<c++基础知识拾遗之&>---------------------------------

在c里面,&有几种意思

1、当两个连在一起的时候。&&。代表的是“并且”的意思

 例如a==1&&b==2.就是当a=1并且b=2的时候!

2、表示引用,例如int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名

3、&表示两种运算符,其中一种表示取值运算符,一种是按位与

(3.1)、取值运算符

int a=1;

int *p=&a; //其中&a表示的就是把a中的地址取出来,然后赋给指针变量,也就是说&a表示的是变量a在内存中的地址。你可以使用printf函数输出这个地址

(3.2)、按位与运算符

计算规则:如果两个数都都为真(或为1),其结果为真,如果两位数中有一位为假(或为0)者结果为假

比如a&b;表示把a和b进行二进制的按位与运算

比如8&10,其中8的二进制是0000 1000,而10的二进制是0000 1010,因此

      0000 1000(十进制8)

    & 0000 1010(10进制10)

结果为0000 1000(就是10进制的8)

因此8&10的结果为8

===================<c++基础知识拾遗之&>===================================

----------------------------------<||运算符从左向右,截断判断>----------------------------------------------------

// couttest.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include "iostream"

using namespace std;

int _tmain(int argc, _tchar* argv[])

{

int  a  = 0;

int  b= 0;

if(((a =3) || (b=3)))

a++;

b++;

}

cout<<a<<endl;

cout<<b<<endl;

return 0;

//输出结果为4、1

========================<||运算符从左向右,截断判断>=============================

------------------------------------------<&&运算符从左向右,全部判断>------------------------------------------------

if(((a =3) && (b=3)))

============================<&&运算符从左向右,全部判断>====================================