一.类型说明符 1.类型说明符是为了节省内存空间,不同类型的值应该提供不同大小的存储单元(便于区分及优化内存) 2.long long 是long long int的简写,在16/32/64位编译器中都是占8个字节 3.short是short int的简写,在16/32/64位编译器中都是占2个字节 4.long还可以用来修饰double类型--->占位符用%Lf (long long和short不可以) 5.long/short都不能用来修饰float/char类型 6.long/short不可以同时使用 7.无符号的char类型取值范围是:0~255; 有符号的char类型取值范围是:-128~127 8.浮点型数据只有有符号类型的,没有无符号类型 9.signed--->能修饰 int char --->占位符用 %d unsigned--->能修饰 int char --->占位符用 %u short--->能修饰 int --->占位符用 %d long--->能修饰 int double--->int占位符用%ld double占位符用%Lf long long--->能修饰 int --->占位符用 %lld
二.位运算: 1.& 按位与运算--->有假为假 2.| 按位或运算--->有真为真 3.^ 按位异或运算--->不同为真,相同为假 4.~ 取反运算--->按位取反(包括符号位) 5.<< 左移运算--->按位左移,高位丢弃(包括符号位) 6.>> 右移运算--->按位右移,高位补0或补1(符号位不变) 7.注意: 1).相同整数相^的结果是0 2).一个数^另一个数两次结果不变(还是这个数本身) 3).几个整数相异或跟运算顺序无关 4).a左移n位--->等效于a*2^n(若符号位改变,则不成立) 5).a右移n为--->等效于a/2^n 6).右移是高位的空缺是正数补0;负数补0或1(取决于编译系统) 7).取反的快捷运算:a取反==-a-1 8).浮点数不能进行位移运算 8.计算机里:补码==原码==反码(不是指表现形式,是指真实的值相等) 9.正数的补码,反码,原码的表现形式是一样的 9.负数的补码=反码+1;反码=原码符号位不变,其余位取反
三.数组的特点: 1.数组必须要定义长度(正整数),定义时可初始化(长度必须是常量)或之后单独初始化 1).数组的长度必须是正数 2).批量赋值只能在定义数组的时候 2.初始化数组的时候元素的个数可以小于数组的总长度 3.数组是有序的,每个数据都有角标,从0开始分配,角标不能>=数组长度 4.数组元素的类型要一致 5.数组的名字表示数组第一个元素的地址,而数组第一个元素的地址和数组的地址是同一个地址 1).数组第一个元素的地址=&arr[0] 2).数组名代表了一个地址,这个地址是数组第一个元素的地址 3).数组的地址是数组名取地址,即:数组的地址=&arr 4).单单从地址的值来看 数组名代表的地址 = 数组第一个元素的地址 = 数组的地址
|