C++ 操作符、局部 全局变量及自动转换原则
1、
&:表示与操作,eg:2&1=0
&&:表示and操作,eg:1&&0=0
|:表示或操作,eg:2|1=3
||:表示or操作,eg:1||0=1
2、
全局变量a和局部变量a,::a表示全局变量,a表示局部变量,
eg:
#include <iostream> using namespace std; int a=3; int main() { int a=10; ::a++; cout<<::a<<endl; cout<<a<<endl; return 0; }
3、
?的作用:表达式1?表达式2:表达式3;如果表达式1为True,执行表达式2,否则执行表达式3,eg:
#include <iostream>
using namespace std;
int main()
{
int i=0,j=4;
i?i++:j++;
cout<<i<<j<<endl;
}
当i=0,执行j++,所以程序结果为0,5。
4、c++语言中的整数自动转换原则
① 、为防止精度损失,如果必要的话,类型总是被提升为较宽的类型。
② 、所有含有小于整型的有序类型的算术表达式在计算之前其类型都会被装换成整型。
eg:unsigned int a=6; int b=-20; a+b的结果不是-14,而是4294967382,因为表达式中存在有符号类型和无符号类型时。所有的操作数都是自动转换为无符号类型。