关于"表达式"的一些笔记


1.short类型为16,能表示的最大值为32767.

 

2.位操作符(对二进制数据操作)

  ~        //按位取反(10,01)

  << />>    //左,右移位运算.

  &        位与        //00,true才为1.

  ^        位异或       //01

  |         位或         //11,false才为

 

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 操作 数组元素个数.

  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,表示不再指向任何对象.




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章