C与指针 第三章学习笔记

C与指针的第三章介绍了数据类型和作用域的知识,经查漏,要补缺的点如下:

  1. static用于函数和位于任何代码块之外的变量时,不改变其存储性和作用域,只改变链接性,被static声明的函数只能在源文件内部访问;

  2. static用于代码块内部变量时,变量的链接属性和作用域不变,只改变存储类型。变量在程序执行之前创建,并在程序的整个执行期间一直存在,而不是在代码块开始执行前创建,在代码块执行完毕后销毁;

  3. limits.h宏定义了各种数据类型的最大最小值,简写分别为(S/U)CHAR、(U)SHRT、(U)INT、(U)LONG、FLT、(L)DBL,其中USHRT、UINT、ULONG因为是无符号类型,所以只有最大值;

  4. 浮点数字字面值总是写成十进制的形式,它必须有一个小数点或一个指数。浮点数字面值缺省情况下都是double类型;

  5. 所有浮点类型至少能够容纳从10-37到1037之间的任何值;

  6. 计算机用补码表示负数,补码由正数的二进制码经“取反加1”得到;

  7. float占32位,组成是:1位符号,8位指数和23位尾数,尾数用“将小数点前面的值固定为1的正则表达式”,指数部分用的是“EXCESS系统表现”;

  8. 浮点数计算要注意其精度,0.1累加100次,得到的是10.000002;

  9. 将超过7位的整型赋值给float,只会保留其前七位(最后一位四舍五入),这点务必要注意,我想也是为啥浮点数默认是double的原因,怕损失精度;

10.枚举类型就是定义一系列整型变量

enum Liquid{OUNCE = 1,CUP=8};
enum Liquid jar;
jar = CUP;//jar的值为8

11.int *a, b, c;//只有a是整型指针,b、c都是整型变量;

12.int a,b,c =1;//只有c被初始化为1

13.函数内部不能定义与形参同名的局部变量;

14.静态变量被初始化为0;

15.引用的外部变量,如extern int x,若x在其他地方没有被初始化,则此处被赋值为0;

书中给出的警告:
1.在声明指针变量时采用容易误导的写法;
2.误解指针声明中初始化的含义。

书中给出的编程提示:
1.为了保持最佳的可移植性,把字符的值限制在有符号和无符号字符范围的交集之内,或者不要在字符上执行算术运算;
2.用它们在使用时最自然的形式来表示字面值;
3.不要把整型值和枚举值混在一起使用;
4.不要依赖引式声明;
5.在定义类型的新名字时,用typedef而不是#define;
6.用const声明其值不会改变的变量;
7.使用名字常量而不是字面值常量;
8.不要在嵌套的代码块之间使用相同的变量名;
9.除了实体的具体定义位置之外,在它的其他声明位置都使用extern关键字。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值