【杂项运算符】
- sizeof()获取某类型在内存中所占的字节数;1字节等于8位。
sizeof(sbyte) 1
sizeof(byte) 1
sizeof(short) 2
sizeof(ushort) 2
sizeof(int) 4
sizeof(uint) 4
sizeof(long) 8
sizeof(ulong) 8
sizeof(char) 2 (Unicode)
sizeof(float) 4
sizeof(double) 8
sizeof(bool) 1 - typeof(&)返回变量的地址。&a; 将得到变量的实际地址。
- *变量的指针。*a; 将指向一个变量。
- ? :条件表达式 如果条件为真 ? 则为 X : 否则为 Y
- is判断对象是否为某一类型。If( Ford is Car) // 检查 Ford 是否是 Car 类的一个对象。
- as强制转换,即使转换失败也不会抛出异常。
Object obj = new StringReader("Hello");
StringReader r = obj as StringReader;
【位运算符】
A=60;
B=13;
A=0011 1100;
B=0000 1101;
&:二进制AND;同位都为TRUE才是TRUE。(A & B) 将得到 12,即为 0000 1100;
|:二进制 OR;同位有且一个为TRUE就是TRUE。(A | B) 将得到 61,即为 0011 1101;
^:不同则为TRUE;如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。(A ^ B) 将得到49,即为 0011 0001;
~:二进制补码运算符是一元运算符,具有”翻转”位效果。(~A ) 将得到 -61,即为 1100 0011,2的补码形式,带符号的二进制数;
<<:二进制左移运算符。左操作数的值向左移动右操作数指定的位数。A << 2 将得到 240,即为 1111 0000;
>>:二进制右移运算符。左操作数的值向右移动右操作数指定的位数。A >> 2 将得到 15, 即为 0000 1111;
【关于变量】
必须初始化,否则,编译器没有推断变量的依据;
初始化器不能为空;
初始化器必须放在表达式中;
不能把初始化器设置为一个对象,除非在初始化器中创建了一个新对象;