20170622 c++

来源:互联网 发布:mysql 索引 性能提升 编辑:程序博客网 时间:2024/06/06 14:14
  1. 存储形式

内存的最小单位是字节;
sizeof(): 单目运算符,用来计算操作数在内存中占据的字节数,其操作数既可以是括在圆括号中的类型标示符,其返回值为无符号整数

          原码         反码        补码  0             0000 0000    0000 0000     0000 0000 -0            1000 0000    1111 1111     0000 0000   一个字节表示的最大范围:   原码  : 1111 1111~0111 1111   -127~127   反码:   1000 0000~0111 1111  -127~127   补码:    1000 0000~0111 1111   **-128~127**        *其中,1000 0000 的反码为1111 1111 原码为1000 0000表示 128*

char: 有符号的 -128~127
unsigned char : 无符号的 0~255 都能表示256个数

字符‘1’和整数1是不同的概念
字符1,占1个字节 00110001
整数1 占四个字节 0x0001
把字符1变成数字1:直接使用字符1减去字符0即可,如:’1’-‘0’

  1. 操作数、运算符和表达式
    求余:左操作数是正的,求余得到正数,如
        3/(-5)=0...3         5/(-3)=-1...2         -3/5 = 0...-3         -5/3=-1...-2         自增运算为右结合性    *p++:自增的优先级高于取内容
括号成员第一  //括号运算符[] () 成员运算.->全体单目第二;//所有的单目运算符 + - ,++ -- * & !乘除余三,加减四;移位五,关系六;//移位<< >> 关系:> < >= <=等于与不等于排第七;==和!=位与 异或 和 位或 三分天下八九十;;;这几个都是位运算逻辑或根与 十二和十一;//逻辑运算:|| 和 &&条件高于赋值;//三目运算符备注:*= -= += /=都是赋值运算符

例:x = y + 8;//乘等优先级低于+ 等价于 x = x (y+8)
x=y=z=5;//赋值运算符的右结合性
a=12;
a+=a-=a*a;//乘号优先级最高,然后右结合性
即a = a + ( a = a- a*a): a=a+a = -132-132;
a = 2;
a%= 4-1; //a = a%(4-1);
a+=a*=a-=a*=3;//右结合

条件运算–自左到右
int a = 5,b=6,c=7,d=8;
a>b?a:c>d?c:d 等价于 >b?a:(c>d?c:d) 结果为8

类型转换:隐式:小字节转到大字节

原创粉丝点击