c笔记整理1(mooc课程)

c笔记1

1.各变量类型所占内存大小(单位:字节)

16位编译器32位编译器64位编译器
char111
char*248
short int222
int244
unsigned int244
float444
double888
long448
long long888
unsigned long448

1).long long 为C99标准下表达方式
2).sizeof()

2.输出时的格式化

int ------  %d
long ------ %ld
double ------ %lf

3.所表达数的范围

char < short < int < float < double

4.补码

1). 11 111 111在十进制下为255,亦即一个字节可表达的最大十进制数字;
2). 11 111 111在作为补码时为-1,因为11 111 111+1=100 000 000,但每个字节只能容纳8比特的数字,所以第九位,即结果的首位数一,会因为溢出而被丢弃,如此最后的结果便为0.补码的意义就是拿补码和源码可以加出一个溢出的“零”。

5.unsigned

1). 加在变量类型前,表示不以补码形式表示负数,表示该变量无负数部分,最小为0。
2). 如果一个字面量常数想表达自己是unsigned,可以在后面加u或U(如255u);如果一个字面量常数想表达自己是long,可以在后面加l或L。

6.整数的输入输出

1). 只有两种形式:int 或long long

  • %d : int
  • %u : unsigned
  • %ld : long long
  • %lu : unsigned long long

7.八进制和十六进制

1). 八进制的数字为0开头
2). 十六进制的数字为0x开头
3). %d输出为十进制,%o可以输出八进制,%x可以输出十六进制,%x输出结果中的字母为小写,%X输出结果中的字母为大写

8.浮点数

1). double和float在极其接近0的位置是无法表示的,但可以表达无穷(inf),也可以表达不存在一个数字(nan)。
2).

scanfprintf
float%f%f,%e
double%lf%f,%e

3). 指定输出多少位小数
在%和f之间加“.位数”即可,例如:
printf("%.4f\n",number)
结果为保留四位小数的浮点数number,注意输出会自动四舍五入
4). 浮点数的计算是没有精度的,带小数点的字面量是double而不是float,需要表明为float时加“f”后缀;要确认两个浮点数相等时,使用“==”可能失败,最好使两个浮点数相减取绝对值,结果小于某个精度值(例如10-8或者10-10)即可
5) 浮点数的内部表达
以编码形式存在,一个比特表达正负,一部分比特用来表达指数部分,一部分用来表达它的分数部分,它并不会用完所有的位数。浮点数一般由专门的硬件计算。如无特殊需要,只需用double。

signexponentfraction
1 bit11 bit52bit

9.字符

1). 字符字面量由单引号’ '表示
2). printf和scanf使用%c来输入输出字符
3). 字符和数字通过ASCII码对应
4). scanf不能读进char,需要中转
5). scanf读入字符,中间加不加空格是有区别的
6). ‘a’ - ‘A’ 可以得到两段之间的距离,所以

  • a + ‘a’ - ‘A’ 可以把一个大写字母变成小写字母
  • a + ‘A’ - ‘a’ 可以把一个小写字母变成大写字母

7). 逃逸字符
若要表示 ",则需要在其之前加反斜杠 ”\“
如\b(回退),\t(对齐,制表位),\r(回车)

10.类型转换

1). 对于printf,任何小于int的类型会被转为int;float会被转为double
2). scanf与printf不同,scanf要求后面变量的类型明确,要输入short,需要%hd
3). 强制转换
(类型)值,如:

  • (int)10.2 表示将10.2转为int类型

注意存在安全性问题
注意强制类型转换是产生了新的值,原变量不变
强制类型转换的优先级高于四则运算

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值