程序设计注意要点

1.产生一个在可表示整数范围之外的整数被称为溢出。典型的结果是“环绕”可表示整数范围,使最小的负整数紧跟着最大的正整数。

2.对于一个浮点值,如果产生一个太大的以至于无法存储的指数将造成溢出;如果产生一个太小的以至于无法存储的负指数将造成下溢。

3.舍入错误,是一种实数值存储表示错误,当在一系列计算中被积累起来时,可能会导致令人恼火(甚至是严重的)的错误结果。

4.在指针定义中,星号运算符*必须出现在每个变量之前。使用typedef 机制和描述式标识符来定义指针类型,从而可以减少违反这一点的机会。这还增加了程序的可读性。

5.每个指针变量都指向一种固定的类型;指针是内存位置的地址,该位置中只能存放该类型的值。

6.操作指针时必须要小心,因为它们的值是内存地址。特别地:一个指针 ptr能够以以下方式被赋予一个值:
ptr = &var; (其中var是ptr指向的类型的对象)
ptr=0; (空地址)
ptr = anotherPtr; (其中anotherPtr指针,其类型与ptr的类型相同)
ptr = new T; (其中T是ptr指向的类型)
关系运算能够用来比较指针,但前提是两个指针必须属于同一类型,或者其中一个或两个都是空地址。
指针能用作形参,但对应的形参和实参必须属于同一类型。函数可以像返回值一样返回指针,但指针的类型必须和被定义的函数指向的类型相同。

7.不要把内存位置和内存位置的内容混淆起来。如果ptr是一个指针,它的值就是某个内存位置的地址;*ptr访问这个内存位置,因此它的值就是这个位置中存储的内容。ptr++和(*ptr)++都是合法的(如果 ptr被绑定到整数类型),但前者将自增 ptr中的地址,而后者将该地址指向的内存位置的内容加1。

8.具有空值并不等同于未定义。当指针被赋予一个内存位置的地址或者空地址时,它就被定义了。把空地址赋给指针就相当于把零赋给一个数值变量。

9.任何试图去引用空指针或未定义指针的操作都会产生运行时错误。不过,在某些版本的C++中,通过使用某些“垃圾”内存位置,可以允许程序继续处理,这显然会产生一个不正确的结果。这就是所谓的悬空指针问题。

10.在一条某个变量没有被命名的语句中改变这个变量的值是非常不好的习惯,因为这会产生难以发现的逻辑错误。这是编程中的别名问题。

ADT :

1数据抽象是软件设计中的一个重要的概念,其中数据类型的定义和数据类型的实现是分开的。
2.ADT是通过提供数据元素的存储结构以及实现在数据上进行的操作的算法来实现的。
3.抽象数据类型的实现往往不完全忠于这个ADT的表示。
4.创建可以按需增长或缩减的数据结构时,可以证明指针是很有用的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值