本人也是刚学C不久算是老菜鸟。把我碰到的问题写出来,希望对初学者有点帮助。
一、分号,大括号
分号。分号是表达式结束的标志,一般表达式后面都要有。写“;”的时候一定要注重:是否要结束前面的语句。注重: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; /*结构体变量的类型定义*/
类型
注重变量的使用范围。当不确定变量的范围的时候尽量选用值域宽的类型。双目运算符两边的变量一般类型要一致。不一致的时候需要使用类型转换。