1 编程规范
1.1:变量常量的命名规范
- 常量命名统一为大写格式
- 如果是变量成员,均以m_开始。
- 如果是普通成员,取与实际相关的名称,并且名称的首字母大写,再在前面添加类型的首字母。
- 如果为指针,则在其标识符前添加p字符,并且,名称首字母要大写。
#define Abc 23 //定义常量 int m_Name; //定义整形成员变量 int iNumber; //定义普通整形变量 int *pAge; //定义指针变量
1.2:函数的命名规范
定义函数时,函数名首字母要大写,其后的字母根据含义大小混写
int AddTwoNum(int num1,int num2);
1.3:注释
- 尽量采用行注释。
- 注释要清晰,让人一目了然。
2 标识符
- 标识符必须以下划线或字母开头。
- 除开头外的其他字符可以由下划线,字母和数字组成。
- 大写和小写的英文字母代表不同的标识符。
- 标识符不能为关键字(关键字这里不做解释)。
int $num; //错误 int 2hao; //错误 int num; //正确 int _hao; //正确 int Num; //注意区别大小写,意义完全不同 int NUM; int num; int int; //int为关键字 int Lnt; //变换大小写后,则不再是关键字。
3 数据类型
4 常量
4.1 整形常量
整型常量可以是基本整型(int)、长整型(long int)或短整型(short int),还可以是无符号整型(unsigned)或有符号(signed)整型。在常量后加上L(或l),表示该常量是长整型,如1314L:加上U(或u),表示该常量为无符号整型,如520U。
int ,short int ,long int是根据编译环境的不同,所取范围不同。而其中short int和long int至少是表中所写范围, 但是int在表中是以16位编译环境写的取值范围。另外 c语言int的取值范围在于他占用的字节数 ,不同的编译器,规定是不一样。ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。但是在VC里,一个int是占4个字节的。
4.2字符型常量
4.2.1 字符常量
- 使用一对单直撇引号(’ ‘)括起来的字符就是字符常量,如’A’、‘#’、'b’等。
字符常量只能包括一个字符,不能是字符串。例如,'A’是正确的,但用’AB’来表示字符常量就是错误的。(这里的符号不会写,将就着看吧) - 字符常量是区分大小写的。例如,'A’和’a’代表的是不同的字符常量(大小写字母相差的ASCII值为32)。
- ’ '代表的是定界符,不属于字符常量的一部分。
#includeint main() { putchar('F'); //输出字符常量 F putchar('i'); //输出字符常量 i putchar('n'); //输出字符常量 n putchar('d'); //输出字符常量 d putchar('n'); //字符串结束标志 return 0; }
4.2.2 字符串常量
字符串常量是用一对双直撇引号(" ")括起来的若干字符序列。例如,"Have a good day!"和 "beautiful day"即为字符串常量。如果字符串中一个字符都没有,将其称作空串,此时字符串的长度为0。
在C语言中存储字符串常量时,系统会在字符串的末尾自动添加一个“ ”,作为字符串的结束志。
#include#include int main() { char Str1[] = "abc";//这里的字符串实际上是"abc " char Str2[] = { 'a', 'b', 'c' };//如果写成这种形式要加上' ',不然计算的就是随机值。 char Str3[] = { 'a', 'b', 'c' ,' ' }; printf("%dn", strlen(Str1));//用stlen计算字符串长度 printf("%dn", strlen(Str2)); printf("%dn", strlen(Str3)); return 0; }
4.3 转义字符
转义字符是在字符常量中比较特殊的符号,通常用“”开头,后面跟一个或几个字符
注意:转义字符只算一个字符
#include#include int main() { printf("%dn", strlen("c:test321329xa1"));//结果为10 return 0; }
4.4 符号常量
用#define定义的常量就是符号常量。例如#define N 20
注意:符号常量在整个程序中只读值,不可更改。
5 变量
5.1 整形变量
整形变量是用来储存整形数值的变量
5.2 浮点型变量(实型变量)
浮点型变量是用来浮点型的变量,由整数和小数两部分组成。
5.3 字符型变量
字符型变量是用来存储字符常量的变量,将一个字符常量存储到一个字符当中,实际上是将该字符对应的ascll码值储存到内存单元中。
字符型变量在内存空间中占一个字节,取值范围是-128~127。
6 变量的存储类型
C程序中有两种不同的存储形式———静态存储和动态存储。静态存储是程序运行时为其分配固定的存储空间,动态存储则是在程序运行期间根据需要的动态地分配存储空间。包括自动变量(auto)静态变量(static)寄存器变量(register)和外部变量(extern)
6.1 auto变量
auto关键字用于定义一个局部变量为自动变量,该变量存储在内存的动态存储区中,这意味着每次执行到该变量定义语句时,都会产生一个新的变量,并且重新对其初始化。
#includevoid Addone() { auto int iInt = 1; iInt = iInt + 1; printf("%dn", iInt); } int main() { printf("第一次调用:"); Addone(); printf("第二次调用:"); Addone(); return 0; }
从程序中可以看出,函数调用结束后auto变量会释放内存空间,因此结果与static变量的结果不同。(可以结合下面的代码一起看)
注意 :关键字auto可以省略,不是特定指定情况下,局部变量的存储方式默认为auto型。
6.2static变量
static变量表示静态变量,存储在内存的静态存储区中。
对于局部变量来说,尽管static和auto的作用域都仅限于声明变量的函数之中,但是在语句块执行期间,static始终保持它的值,并且初始化操作只在第一次执行时起作用,在随后的运行过程中变量将保持语句上一次执行的值。
#includevoid Addone() { static int iInt = 1; iInt = iInt + 1; printf("%dn", iInt); } int main() { printf("第一次调用:"); Addone(); printf("第二次调用:"); Addone(); return 0; }
6.3 register(寄存器变量)
大概了解就行
6.4 extern变量
extern变量又称外部存储变量,常用于声明程序需要使用且已在其他程序文件中定义过的变量。
注意:在Visual Studio编译器中,.cpp文件不支持extern变量,要把文件改成.c文件。



