c程序设计语言 读书笔记02
第二章 类型、运算符与表达式
- 变量名:名字有字母和数字组成,第一个字符必须是字符。下划线“_”被看作字母,通常用于命名较长的变量名,以提高其可读性。
全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount,即:变量名=g_+变量类型+变量的英文意思(或缩写) 静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst,即: 变量名=s_+变量类型+变量的英文意思(或缩写)
成员变量用m_开头,如一个长型成员变量定义为m_lCount;即:变量名=m_+变量类型+变量的英文意思(或缩写)
对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大写。 如:enum cmEMDAYS { EMDAYS_MONDAY; EMDAYS_TUESDAY; };
对struct、union、class变量的命名要求定义的类型用大写。并要加上前缀,其内部变量的命名规则与变量命名规则一致 结构一般用S开头 如:struct ScmNPoint { int nX;//点的X位置 int nY; //点的Y位置 }; 联合体一般用U开头 如: union UcmLPoint { long lX; long lY; } 类一般用C开头 如: class CcmFPoint { public: float fPoint; }; 对一般的结构应该定义为类模板,为以后的扩展性考虑 如: template class CcmTVector3d { public: TYPE x,y,z; };
对常量(包括错误的编码)命名,要求常量名用大写,常量名用英文表达其意思。 如:#define CM_FILE_NOT_FOUND CMMAKEHR(0X20B) 其中CM表示类别。
对const 的变量要求在变量的命名规则前加入c_,即:c_+变量命名规则;例如: const char* c_szFileName;
2.数据类型及长度
1 char 字符型,占用一个字节 8位 2 short 短整型 通常为16位 3 int 整型,通常反映了所用机器中整数的最自然长度 可以为16或32位 4 long 长整型 通常 32位 5 float 单精度浮点型 6 double 双精度浮点型 7 8 9 类型限定符signed 和unsigned 可以用于限定char类型或任何整型,unsigned类型的数总是大于或等于0 10 11 浮点型的长度也取决于具体的实现,float、double 与long double类型可以表示相同的长度,也可以表示两种或三种不同的长度。
3.常量
1 包括数字常量和字符常量 2 一个字符常量是一个整数
4.声明
1 所有的变量,函数都必须先声明,然后在使用 2 可以在声明的时候对变量初始化,也可以不初始化例如: 3 int time = 4; 4 或 5 int time; 6 time = 4; 7 8 任何变量的声明都可以使用const限定符限定。该限定符指定的变量不能修改该,对于数组而言,const限定的数组所有元素都不能被修改。
5.算数运算符
1 算数运算符包括,+,-,×,/,%。“/”是整数除法,结果不会有小数,取商值,“%”是取模运算,取余数值,不能用于float和double型。 2 3 二元运算符“+”“-”优先级比“×”“/”“%”低,而“×”“/”“%”的优先级又比一元运算符”+“-”低
6.关系运算符和逻辑运算符
1 关系运算符有>,=,<,>=,<=它们具有相同的优先级,优先级又比!=和==低一些 2 关系运算符的优先级低于算数运算符 3 逻辑运算符“&&”的优先级高于逻辑运算符“||”,但它们都低于算数运算符和逻辑运算符 4 pS;在不确定优先级顺序时,就不要挑战自己的记忆力,最好的办法就是用()
7.类型转换
1 低精度会自动向高精度转换,数据不会丢失,但是高位部分会根据机器填充“0”或“1” 2 高精度向低精度转换时会丢失数据信息
8.自增运算符和自减运算符
int i= 5; int a = i++; //先赋值给a,然后i自加。a = 5,i = 6; int b = ++i;//i先自加,再赋值给b,b = 6,i = 6 --与++情况相同
9.按位运算符
1 c语言提供的按位运算符,这些运算符只能作用于整型操作数,即带符号或不带符号的(int,long,short,char) 2 & 按位与 (AND) 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现 3 | 按位 (OR) 其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。 4 << 左移 其功能是操作数左移 5 >> 右移 其功能是操作数右移 6 ^ 按位异或 (XOR) 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 7 ~ 按位取反(一元运算符) 操作数按位取反