【C/C++问题】

一、简述枚举类型(enum)的作用和用法

        枚举类型其实是整型,它的作用一是让数值看起来更直观;二是圈定一个范围,使数值被限定在这个范围中,常与 switch case 语句一起使用。

        枚举的语法定义格式:enum 枚举名{枚举元素 1,枚举元素 2,……};  

        第一个枚举成员的默认值为整型的 0,并且枚举成员没有被指定值的时候它的值默认为前一个元素加 1,枚举成员的值可以重复,还可以定义枚举变量 enum 枚举名 枚举变量名; / enum 枚举名 {枚举元素……} 枚举变量名; / enum {枚举元素…… }枚举变量名; 只能用枚举变量的枚举类型对应的枚举元素给枚举变量赋值,想用其他枚举元素或整型赋值需要强转。

二、C/C++ 中有哪些常见的运算符?请举例说明它们的用法。 

 运算符包括算术运算符、比较运算符、逻辑运算符、位运算符和赋值运算符。

 2.1 算术运算符


' + '加、' - '减、' * '乘、' / '除、' % '取余、' ++ '自增、' -- '自减。


a++是先赋值后运算,
int a = 10;
cout << a++ << endl;
cout << a << endl;
//先输出10,再输出11

++a是先运算后赋值
int a = 10;
cout << ++a << endl;
cout << a << endl;
//都输出11
i++{//压入j寄存器
int j=i;
i=i+1;
return j;
}

 2.2 比较运算符

 假设 a 的值为 10, b 的值为 20:

/*
== 两个操作数的值是否相等,如果相等则条件为真。 a == b 值为 0
!= 两个操作数的值是否相等,如果不相等则条件为真。 a != b 值为 1
> 左操作数的值是否大于右操作数的值,如果是则条件为真。 a > b 值为 0
< 左操作数的值是否小于右操作数的值,如果是则条件为真。 a < b 值为 1
>= 左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 a >= b 值为 0
<= 左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 a <= b 值为 1
*/

 2.3 逻辑运算符

假设 a 的值为 0, b 的值为 1:

 /*
 && 逻辑与运算符。如果两个操作数都非零,则条件为真。 a && b 值为 0
 || 逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 a || b 值为 1
 ! 逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假 !(a && b)值为 1 
 */

2.4 位运算符

/*
按位与 & 有0为0 1与另一个数是另一个数本身  
按位或 | 有1为1 全0为0
按位异或 ^ 相同为0,不同为1
按位取反 ~ 0 变 1, 1 变 0
按位左移 << 
按位右移 >>
*/

2.5 赋值运算符

/*
= 把右边的操作数的值赋给左边操作数
+= 把右边操作数加上左边操作数的结果赋值给左边操作数
-= 把左边操作数减去右边操作数的结果赋值给左边操作数
*= 把右边操作数乘以左边操作数的结果赋值给左边操作数
/= 把左边操作数除以右边操作数的结果赋值给左边操作数
%= 把左边操作数除以右边操作数的余数赋值给左边操作数
<<= 左移且赋值运算符
>>= 右移且赋值运算符
&= 按位与且赋值运算符
^= 按位异或且赋值运算符
|= 按位或且赋值运算符
*/

上一篇:CSS复习2


下一篇:Hadoop:单机伪分布式部署