1.short类型为16位,能表示的最大值为32767.
2.位操作符(对二进制数据操作)
~ //按位取反(1变0,0变1)
<< />> //左,右移位运算.
& 位与 //有0为0,同true才为1.
^ 位异或 //同0异1
| 位或 //有1为1,同false才为0
3.bitset 对象或整型值使用(对比)
①定义30位二进制数据对象,储存简单数据
bitset<30> bitset_quiz;
unsigned long int_quiz = 0; //32位.
②27位上设置为1;
bitset_quiz.set(27);
int_quiz |= 1UL << 27 ; →int_quiz = int_quiz | 1UL << 27;
③27位上设置为0;
bitset_quiz.reset(27);
int_quiz &= ~(1UL << 27); → int_quiz = int_quiz &~(1UL << 27);
ps:bitset 对象更优于 整型对象 进行低级直接位操作
4.Sizeof操作符
sizeof 对数组进行操作 = 对数组类型做sizeof 操作 x 数组元素个数.
int arr[x];
int *p = arr;
对指针所指对象作sizeof 操作需要解引用(*)
sizeof(arr); //得整个数组占内存的存储长度
sizeof(*p); //返回arr[0] 类型长度.
5. new 和 delete 表达式指针
①如果指针指向不是用new分配的内存地址,则在该指针上使用delete是不合法的.
int ival = 10;
int *pi = &ival;
string pc = "a simple string";
delete pc; //error, pc不是一个指针
delete pi; //error pi指向的不是用new分配的内存地址的指针
② delete 后,重设指针的值
指针仍会指向原来的内存地址(此时的指针称作悬垂指针),应立即将指针置为0,表示不再指向任何对象.