学习基础也是有窍门的,对于大部分概念来说,都相对符合人的思维逻辑,因此你可以轻易的理解它们,也不容易发生混淆;但对于初入编程世界的朋友们来 说,仍有一些是规则是陌生的,甚至是难以理解的。这时候,你所要做的就是学习并接受它们,如果你不顾这些规则而随意在这个世界中驰骋,我想编译器一定会给 你好看。 : )
以下是我所总结的在学习编程基础知识的时候你所应该注意的要点,有挂一漏万之嫌,但至少颇具代表性。看看你是否已经熟练的掌握了它们:
1、标识符规则:
这里的规则不仅仅指那些由编译器老大管辖的条条框框:不能以数字开头,可以包含数字、字母、下划线、美元符号……等等。同样也包含一些“民间”的约 定,例如变量、函数命名以小写字母开头,类命名以大写字母开头,常量命名均使用大写字母等等…..你不遵守这些约定,编译器不会对你亮红灯,但会造成你的 程序可读性下降。这样我想起《thinking in java》的译著作者侯捷先生,就是因为忽视了大陆读者的阅读习惯,自创了一些生涩的词汇,结果被很多读者以此为借口抛掷鸡蛋(当然我明白更主要的原因是 大多数读者嫌这本书实在太贵了: )。
2.=与==
如果你正在读小学一年级,你可以告诉我“=”与“==”的区别就是一个等号和两个等号的区别,但作为一个程序员,你应该理解它们从根本上不是一类事 物,“=”是赋值运算符,而“==”是比较运算符。所以不要再问我if(a=b) a=1;这样的代码为什么不对。但我承认,在刚开始接触程序的时候(c语言),我也犯过不少次这样的错误,而且很长时间找不到问题所在,等到发现了错误, 又总是自责自己为什么会如此愚蠢。我现在特别提醒你注意这一点,如果仍然犯下这样的错误,那只能说明你比我更加愚蠢。:)
3.运算符优先级
一个经常被人忽视的问题!的确,它可以通过另一种方式来完全避免优先级带来的困扰,那就是频繁的使用“()”,通过“()”来决定你每一步的运算顺 序。只要你不怕麻烦,你完全可以这么做,而且也增加了程序的可读性。但不是所有的人都喜欢这样,一个老资格的程序员通常愿意在一大长串表达式中使用数个优 先级各不相同的运算符且不包含任何的小括号,这种情况就是对你对运算符优先级的掌握的一个考验了。但不管怎么说,使用“()”来明确你的运算顺序并不是一 件坏事,甚至值得推荐。
4.i++与++i
我在前面的文章中就已经提到这个问题,尽管现在看起来简单无比,但当时的确给我们带来了一些困扰,这个问题也是非常普遍的。充分理解它的方法就是写几个包含i++和++i的表达式,然后观察表达式的运算结果及i的值。很快,这对于你来说将不再是个问题。
5.数据类型转换
你可能不经常用到数据类型转换,但你至少该知道它们的原理,那些转换是隐式的,而那些转换必须显式地进行,而且有可能造成数据的损坏。了解了这些,可以让你避免一些奇怪的错误。因为通常由数据类型转换所带来的程序问题很难被觉察到。
6.数组
严格的说,数组不是一种数据类型,而是一种数据结构。这是一个值得你认真研究的概念。因为在实际应用中,数组的使用率大大超过其他集合类型甚至是某 些原始类型。你需要了解构造和初始化数组的各种有效的格式,同时也应该对二位数组有所了解。数组与循环控制的配合可能已经可以一个完整的程序中一半的工 作。