C语言学习易错(自用)(持续更)

本文介绍了C语言中的局部变量作用范围,以及输入数据的格式化处理,包括%d占位符的各种用法。还讨论了整型与浮点型之间的精度转换和8位字长计算机的特性。
摘要由CSDN通过智能技术生成
1.局部变量是离自己最近的大括号内有效,并不是在整个函数内有用。

2.C语言中,先int i,当你在scanf输入i时,输入的是"03",则i会赋值等于3,不会报错(在解决有关日期的问题代码里可能有妙用)

3.关于"%d"
%6d: 输出宽度为6,不足左边补上空格
%06d:宽度是6位,不足左边补上"0"
%6.2d:宽度是6位,但只显示2位
%-6d:宽度6位,不足右边补上空格
%.6f:保留小数后6位
%3.2f:总宽度为3,不足补空格,小数保留2位,若超过3会自动拓展
即小数点前的数字代表输出数字的宽度,小数点后的数字代表输出数字的精度

4.#define x 3+2
int i=2*x; 此时i等于"2*3+2=8"
而如果是 int i=x*2; 此时i等于"3+2*2=7"
 
5.scanf("%d",&i);
 printf("i=%d\n",i);
 fflush(stdin);    //fflush(stdin)的作用是清空输入缓冲区,以免下面的scanf("%c",c)会读到'\n'
 scanf("%c",c)
6.int 在转为 float 时,也可能发生精度丢失,因为int是32位,float也是32位
但是float在内存中二进制存储时候还有符号位和指数部分,数值部分只有23位
 而且float的精度只有6-7位,也就是说如果一个int类的数据位数多于7位就会有精度丢失
 但是如果int =234,这种小于6位的就不会。

7.在考研的时候看到“8位字长的计算机”,这个时候就要注意int 就不是4个字节了,而是1个字节

8.二进制数字:1.111111...... (假设小数点后有n个1),则1.1111111......转换为10进制数

1.11111111......=2-2^(-n)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值