程序员等级测试,你不进来试试么?听说等级高的都进一线bat了!

  变量是什么?回答出一个清晰准确的解释可能会一下子难倒有经验的程序员。

  在讨论变量之前,我们先来了解一下数据认知。

                                               

数据认知

  计算机系统中有各种类型的数据,简单的如int,char等。在更抽象的层面上,数据结构也是一种数据,一种复杂的数据类型。让我们做一个测试,看看大家对数据类型的认识面如何。

  以下是各种数据类型的列表,熟悉的概念+1,大概知道含义但不是太确定+0.5,最后总分即表示你对数据类型的熟悉程度。

                                                 

  abstract data type

  array

  bitmap

  boolean variable

  B-tree

  character variable

  container class

  double precision

  elongated stream

  enumerated type

  floating point

  heap

  index

  integer

  linked list

  named constant

  lookup table

  member data

  pointer

  private

  retroactive synapse

  referential integrity

  stack

  string

  structured variable

  tree

  typedef

  union

  value chain

  variant

  literal

  local variable

  请大家留言回复,看看各位的分数。

  0-14分:新手

  15-19分:中级程序员

  20-24分:高级程序员

  25-29分:比作者的水平还要高,可以考虑写书了

  30-32分:你不是一个诚实的人...

避免变量的隐式声明

  首先了解一下什么叫做隐式声明(Implicit Declarations),有些语言支持这种特性,即不需要声明一个变量,在使用一个没有声明的变量时,系统会自动帮你声明。这个特性非常危险,如果一不小心你在写变量名称的时候出现了错误,那么就会同时有两个完全不同的变量在代码中游走,导致程序出现各种奇怪的运行逻辑,而你却以为它们是同一个变量。

  所以,对于隐式声明,有以下一些建议:

  关闭隐式声明

  声明全部的变量

  遵循某种命名规则

  检查变量名

  变量的初始化

  如果对于变量初始化没有足够的重视,会经常导致一些与预期不符的情况出现。初始化一般会存在以下几种问题:

  从来没有对变量赋过值;

  变量的值已经过期;

  变量的一部分被赋值,而另一部分则没有;

                                       

那么如何避免初始化的错误呢?

  在声明变量的时候初始化

float studentGrades[ MAX_STUDENTS ] = { 0.0 };

  在靠近变量第一次使用的地方赋值

Dim accountIndex As Integer

accountIndex = 0

' code using accountIndex

...

Dim total As Double

total = 0.0

' code using total

...

Dim done As Boolean

done = False

' code using done

While Not done

  在可能的情况下使用final或const

  特别注意计数器和累计器。i、j、k、sum这种变量在做累加的时候,经常会忘记被重置。

  在类的构造函数里初始化成员变量

  注意编译器的警告信息

  检查输入参数的合法性

  使用内存访问检查工具来检查错误的指针

  在程序开始初始化使用内存

学习C/C++编程可以扫下方二维码,学习编程,码上开始!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值