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

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

数据认知

  计算机系统中有各种类型的数据,简单的如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++编程可以扫下方二维码,学习编程,码上开始!

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

  1. 从程序员到测试工程师

    这篇是2002年底<程序员>杂志上的一篇文章,虽然时间早了点,但值得一看. ------------ 前言:软件测试一门非常崭新的学科,目前研究的内容还很不深入,仍然处于婴儿阶段.软件测试 ...

  2. 从程序员到测试工程师(转)

    前言:软件测试一门非常崭新的学科,目前研究的内容还很不深入,仍然处于婴儿阶段.软件测试需要什么样的专业基础还没有定论,而且目前还没有一种很好的标准来衡量测试人员.但无可置疑,软件测试越来越受到软件公司 ...

  3. PHP初级程序员能力测试参考答案

    PHP初级程序员能力测试参考答案[闭卷] 注:①本测试满分100分,80分及格,形式为闭卷,不得翻阅任何手册和参考书籍.本试卷使用的PHP版本为5.2.6+,WEB服务器使用APACHE2+,开发平台 ...

  4. CSDN日报191105:2019年11月全国程序员工资统计,区块链工程师比算法工资高

    CSDN日报来啦!给大家奉上当日最新鲜的技术干货! 2019年11月全国程序员工资统计,区块链工程师比算法工资高 作者:有数可据 我每个月第一天(也许是第二天,第三天),会爬招聘网站,并在CSDN发布 ...

  5. 做柜员还是程序员_程序员放弃互联网选择去银行,但想到同学工资高好几倍心里不平衡...

    原标题:程序员放弃互联网选择去银行,但想到同学工资高好几倍心里不平衡 一名程序员在论坛上表达了自己内心的苦恼与失落:放弃了一线的互联网大厂去银行做技术,以后还怎么平衡身边同学工资是自己几倍的心理. 这 ...

  6. 程序员一身行头4万块,其中3万多竟然都用来植发了

    我们印象中的程序员通常都是吃得了中关村的黄焖鸡外卖,穿的了某衣裤的格子衫,修的了让人头皮发麻的BUG. 程序员一身行头4万块,其中3万多竟然都用来植发了 但一心想在人群中默默低调行事的"程序 ...

  7. 程序出错后,程序员给测试人员的20条高频回复

    原文地址: http://www.jobbole.com/entry.php/606 编者按:程序员和软件测试员之间的关系无须多言.这些经典回复是国外程序员总结分享的,"全球通用" ...

  8. 微软程序员利用测试账户套现千万美元,或面临 20 年监禁

    据外媒报道,美国检察官表示一名前微软程序员利用微软内部对测试账户监管不严的漏洞,疯狂套现 1000 万美元,并购置了一辆特斯拉与价值 160 万美元的房产,而其可能因此面临高达 20 年的监禁与 25 ...

  9. 程序员小测试:保守派 vs 自由派

    最近,我在阅读 Steve Yegg 的文集<程序员的呐喊>. 这是一本非常有趣的书,里面甚至包含了一个小测试(原文),区分一个程序员到底是保守派还是自由派. 下面一共有十个问题,每个问题 ...

最新文章

  1. 使用 IntraWeb (8) - 系统模板
  2. php mysql事务
  3. Python之pandas:pandas.set_option函数的参数详细解释
  4. Cesium学习笔记(四)Camera
  5. 【学亮IT手记】jQuery DOM插入操作
  6. SpringBoot基础重难点
  7. jdk的ServiceLoader
  8. 【Advanced Windows Phone Programming】在windows phone 8中录制MP3和AAC及Amr音频
  9. hdu 6351 Beautiful Now
  10. c++ 调用程序接口_添加系统调用(返回文件信息)
  11. 基于P2P终结者的ARP攻击实践(截取数据获取上网账号密码)
  12. 玉柴spn码故障对照表_玉柴电控柴油机故障代码及读码方法
  13. 灵魂电钢琴音源 Native Instruments George Duke Soul Treasures
  14. 做图片用的计算机配置文件,电脑如何显示照片色域为DCI-P3标准的拍摄照片
  15. iPhone5充不进电
  16. 探索Selenium打开浏览器加载慢的原因
  17. Mac 超详细入门指南,备用!
  18. 山东理工acm 3926 bLue的二叉树
  19. 浅谈垂直腔面发射激光器的设计原则
  20. iphone计算机的声音怎么办,苹果耳机插电脑上没声音怎么办_苹果耳机插win10电脑没声音如何解决-win7之家...

热门文章

  1. android新建多个java,Java-如何在Android的警报对话框中添加多项选...
  2. vue设置img大小的属性_Vue.js自定义标签属性并获取属性,及绑定img的src属性的坑...
  3. unzip 解压_每天一条Linux命令(11) unzip (超详细)
  4. android 通知_Android 全局消息通知框架实现(类似EventBus)
  5. 山东外贸职业学院王彩霞老师网上考试系统及c语言考试题库》,2015年山东外贸职业学院单招考试内容...
  6. mysql-5.7.24 linux下载_Linux下安装mysql-5.7.24
  7. win10运行vue项目_vue+webpack在window10环境下搭建及遇到的问题
  8. 面试时会谈薪的人一开口就赢了:让你薪资翻倍的谈薪技巧
  9. 2021年全球营销趋势报告
  10. android 短信编解码方式,中移短信cmpp协议/smpp协议 netty实现编解码