C语言中11是什么数据类型,根本数据类型 (代码大全 第十一章)

本文详细介绍了编程中基本数据类型的使用规范,包括避免使用‘奇异数’,确保类型转换和比较的安全,检查整型和浮点数的溢出和舍入误差,以及对字符和字符串操作的注意事项。强调了使用枚举类型提高代码可读性和可靠性,并提出使用命名常量和逻辑变量的最佳实践。此外,还深入讨论了指针的理解和使用,包括指针类型的声明、检查和内存管理,以及如何避免指针错误。最后,提倡通过数组边界检查和使用特定函数提高安全性。
摘要由CSDN通过智能技术生成

基本数据类型 (代码大全 第十一章)

11.1常数

避免"奇异数"(magic numbers)。“奇异数”指的是出现在程序中间的不加解释的常数。

在需要时可以使用常数“0”或“1”

采取预防被"0"除的措施

明显进行类型转换

避免混合类型比较

注意编译程序的警告

优秀的程序员总是力争消除所有的编译程序

警告信息。让编译程序去查错毕竟比自己干容易得多。

11.2整型数

检查整型相除

检查整型是否溢出

检查中间结果是否溢出

11.3浮点数

不要在数量级相差太大的数之间进行加减运算

避免相等比较

防止舍入误差

11.4字符和字符串

避免“奇异字符和字符串”

警惕边界错误

11.4.1 C语言字符串

要清楚字符串指针和字符数组之间的区别

要注意任何含有字符串且又带有引号的表达式

使用命名约定来表示变量究竟是字符数组还是字符串指针

将字符串的长度说明为CONSTANT+1

把字符串初始化为“0”以避免无限长字符串

在C中用字符数组来代替指针

用strncpy()代替strcpy()以避免无限长字将串

像strcpy()和strcmp()之类的子程序是很危险的,因为只有当遇到零结束符时它们才会停止。而strncpy()和strncmp()相对来说,则要安全得多,因为它们把某一参数当作最大长度,因此即使某些字符率是无限长的,你的调用函数也不会持续不断地永远进行下去。

11.5 逻辑变量

使用逻辑变量来说明程序

使用逻辑变量来简化复杂的判断

如果必要的话,建立自己的逻辑类型

11.6枚举类型

使用枚举类型来提高可读性

使用枚举类型来提高可靠性

使用枚举类型来改善易修改性

用枚举类型来代替逻辑变量

检查无效值

把枚举类型的第一个入口保留为无效的

11.6.1如果所用的语言不支持枚举类型

许多编译程序都把枚举类型中第一个元素的值赋为零。把被赋为0值的那个元素说明为无效,可以帮助找出不恰当初始化的变量,因为当它们失效时更容易为0。

11.7 命名常量

在数据说明中使用命名常量

避免常数值

使用全局变量来模拟命名常量

一致地使用命名常量

11.8 数 组

确保所有的数组下标都没有越界

把数组当作顺序性结构 许多计算机科学家建议决不要随机地对数组进行存取。

检查数组边界

对于多维数组,要保证其下标的顺序是正确的

警惕下标的错误交叉

使数组的长度留有一定裕度

在 C 中,使用 ARRAY_LENGTH( )宏来处理数组

11.9 指 针

11.9.1 理解指针

每个指针包括两部分:内存存储单元及对这个存储单元中内容的解释。

内存中的存储单元

内存中的存储单元就是地址,通常是用十六进制数来表示的。

怎样解释存储单元中的内容

解释存储单元中内容的基础是指针的基本类型。如果指针指向一个整数,它的真实含义 是编译程序把由指针提供的存储单元解释为一个整数。当然,可能会出现整数指针、字符串 指针和浮点数指针同时指向同一个存储单元的情况,而此时只有一个指针正确地解释了该 单元中的内容。

11.9.2 关于使用指针的几点建议

在使用指针之前对它进行检查

把指针操作独立在子程序中

在使用变量之前应先检查一下这一变量

使用标记字段来查找错误内存

使用显示冗余技术

释放指针后,把它设为 NULL 或 NIL。

使用额外的指针变量以增加清晰性。不管怎样,都不要吝于供给指针变量。

简化复杂的指针表达式

编写跟踪指针存储单元的子程序

按正确顺序释放链表中的指针

编写输出指针地址的子程序

在内存中划分出一段空间作为“降落伞”

使用非指针技术

11.9.3 C 中的指针

应使用显式指针类型而不是缺省类型

避免强制类型转换。

遵守参数传递的星号规则。

使用 sizeof()来确定内存存储单元中变量的规模。

使用 sizeof()不会影响性能,因为它的计算是在编译过程中进行的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值