程序员等级测试,你不进来试试么?听说等级高的都进一线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++程序员小知识,学习并提升自己的C/C++编程技术,欢迎进我们学习QQ群604168719,学习C/C++,从现在开始!