黑马程序员技术交流社区

标题: C语言基础笔记 [打印本页]

作者: 逗你玩儿LLY    时间: 2015-10-11 18:42
标题: C语言基础笔记
一.类型说明符
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).单单从地址的值来看  数组名代表的地址 = 数组第一个元素的地址 = 数组的地址






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2