一、分号,大括号
分号。分号是表达式结束的标志,一般表达式后面都要有。 写“;”的时候一定要注意:是否要结束前面的语句 。注意:if,switch,for,while语句,数据类型定义,函数定义。
if(a>b) /*if语句,没有分号*/
{...}
while(i+=10,i!=100); /*while语句循环体为空,依靠逗号语句实现循环*/
struct a /*结构体数据定义,没有分号*/
{...}b; /*结构体变量,要有分号*/
int sum(...) /*函数定义,没有分号*/
{....}
大括号。大括号是一个语句段的标志。 写大括号时最好一次写一对,然后把光标移到大括号里写 。避免遗漏。
二、运算符号
“=”与“==”
“=”用于赋值,注意“=”左边必须是变量,右边可以是常量也可以是变量。“==”用于判断两个量的大小,左右两边可以是常量也可以是变量( 尽量把常量写在左边,这样“==”误写成“=”时编译器就会报错 )。 运算表达式有它本身的值 。“=”语句值为“=”右边的量的大小;“==”语句值为判断结果,无外乎两种,0(表示“==”两边不等)1(“==”两边相等)。
(i=1)==(3==4); /*i值为1,整个表达式值为0*/
“,”
逗号语句是从左到右计算,整个逗号语句的值为最后一个语句的值
i=(j=2,j+8,j++); /*先计算j=2,值为2,j+8不是运算表达式,跳过,计算j++得到整个括号内的值3*/
“/”
“/”两边都是整型变量的时候结果也是整型,而且结果遵循向0靠拢的原则 。
运算符的优先级及结合方向
不多说了,表格一定要背牢。
三、变量
命名
不要吝惜,能说明白性质尽量在变量的名字上说明。 避免老是使用一个字母,或者难以理解的变量名 。对于较长的变量命名可以使用宏定义、类型定义。
#deine UP 0x4800 /*键码的宏定义*/
typedef struct
{....}MEM; /*结构体变量的类型定义*/
类型
注意变量的使用范围。 当不确定变量的范围的时候尽量选用值域宽的类型。双目运算符两边的变量一般类型要一致。不一致的时候需要使用类型转换 。
上回说的是一些小问题,真正编东西,学东西还有许多要注意的地方。
由于本人也是刚学不久,水平有限,说错的地方望大家原谅。谢谢!
一、多看代码
在有一定基础以后一定要多看别人的代码。 注意代码中的算法和数据结构。 毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C。别的方面也要关注一下,诸如变量的命名、库函数的用法等等。有些库函数是经常用到的。对于这些函数的用法就要牢牢记住。
二、要自己动手
编程序是个实干的活,光说不练不行。刚开始学的时候可以多练习书上的习题。 对于自己不明白的地方,自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象。 自己动手的过程中要不断纠正自己不好的编程习惯和认识错误。有一定的基础以后可以尝试编一点小游戏,文曲星之类的电子词典上小游戏很多,照着编作为练习。基础很扎实的时候,可以编一些关于数据结构方面的东西,诸如最经典的学生管理系统。之后.....学汇编、硬件知识。
三、选择一个好的编译器
本人前段时间就遭受了一个编译器的折磨。这个编译器带了个自运行程序,自动修改IE主页。叫什么名字就不说了。言归正传,英文版Turbo C v2.0没话说,最经典的C编译器(下载地址: http://www4.skycn.com/soft/2151 ),其次推荐一个win-tc 1.91,支持windows下的编译器。(下载地址: http://www4.skycn.com/soft/17869 )
四、关于养成良好的编程习惯
基本上每本C教材上都要提到。作为新手这条一定要时时遵守。记的一位网友发过评论:高手写一堆乱七八糟的代码就是艺术,新手写一堆乱七八糟的代码就是垃圾。就象古代贤人写错字叫通假字,小学生写错字叫错别字,一个道理。具体方面:
1、 在比较复杂的代码后面要有注释。 如果光溜溜一堆代码,别人就不可能看懂你的代码,而且也不利于查找错误。除非你一直编东西给自己看。能在代码里说明白的就一定要在代码里体现。比如变量名、函数名,在命名的时候尽量说明是干什么用的。
2、注意语句的嵌套不能过长,一般来说,一段代码里Tab要少于8个。 简单说就是语句最多8个嵌套。 对于新手来说,这个标准还要下降。有一个好习惯是,把主函数尽量写简短。经常看到别人的代码是主函数只有几行,几个函数调用,而定义全在主函数外部。这样一是减少了主函数内部的嵌套,二是比较精简,容易读懂。
3、注意语句的选择。并不是分支语句就用if循环就用while、for。在适当的情况下switch和do while语句也是要用的。在某些时候,switch语句比if语句更加精练明了,而do while比while少一个循环。
----------------解决方案--------------------------------------------------------