1:常量
在程序运行过程中,其值不能被改变的量称为常量
分为字面常量也叫直接常量和符号常量两种
字面常量如:0 ,-3;(整形常量) 4.6(实型常量) 等
符号常量:#define P 3.14
2:整型常量的表示
十进制:123
八进制:0123 (等于10进制 1*8*8+2*8+3) ; -011表示八进制-11,即使进制-9
十六进制:0x123
3:强制类型转换运算符
一般形式:(类型名)(表达式)
4:逗号运算符和逗号表达式
逗号表达式一般形式:表达式1,表达式2
求解过程:先求解表达式1,再求解表达式2,逗号表达式值为表达式2的值
扩展:表达式1,表达式2,表达式3,...
5:printf()输出格式
%d:十进制带符号整数
%u:十进制无符号整数
%o:八进制无符号整数
%x:十六进制无符号整数
%p:输出地址
6:条件运算符
一般形式:表达式1 ? 表达式2 :表达式3
求解过程:表达式1为真则整个表达式值为表达式2,反之为表达式3
7:switch语句
一般形式:
switch(表达式)
{
case常量表达式1:xxx;break;
default:xxxx;
}
8:goto语句
一般形式:goto 语句标号;
注:语句标号命名同变量一样
9:for循环
一般形式:for(表达式1,表达式2,表达式3) {语句;}
求解过程:先求表达式1,再求表达式2,若为真,执行语句,再求表达式3,再求表达式2...
9:break语句
一般形式:break;
注:break只能用于循环语句(跳出本层循环体)和switch语句
10: continue语句
一般性式:continue;
用法:结束本次循环,进行下一次循环的判断
11:二维数据
一般形式:类型 数组名[常量表达式][常量表达式];
初始化:int a[3][4] = {1,2,3,4,5,7};或int a[3][4] = {{1,2},{4,5},{9}};
12:一些字符串处理函数
strcat(字符数组1名,字符数组2名);
作用:将字符数组2接到字符数组1后面,返回字符数组1地址
strcpy(数组名1,字符串地址2);
作用:将字符串2复制到数组1中去,包括最后的\0;
strcmp(字符串1,字符串2);
作用:比较字符串1和字符串2
相等返回0;串1大返回正整数,串2大返回负整数
13:strlen函数和sizeof
strlen(字符数组名);
作用:测试字符串长度,不包含\0;
sizeof(字符数组名、类新名、指针);
字符数组名: 测试字符数组的大小
类型名: 测试类新所占字节大小
指针: 4字节
14:函数定义与声明
函数的声明和函数的定义中的函数头部基本相同,只差一个分号
加上分号的函数头称为函数原型
函数原型一般形式:
函数返回值类型 函数名(参数类型1,参数类型2);
函数返回值类型 函数名(参数类型1 参数1名,参数类型2 参数2名);
15:c语言提供的预处理功能主要有以下3种
宏定义、文件包含、条件编译
注:编译过程分为:预编译(宏替换,文件包含,条件编译,去注释生成.i文件)、编译(语法词法检查生成.S文件)、汇编(将汇编代码转换成二进制代码.o文件)、链接(生成可执行文件)
16:宏定义
分为带参和不带参
不带参一般形式
#define 标识符 字符串
用标识符代替字符串,标识符也叫宏名
宏名的有效范围为定义命令之后到本源文件结束,或者用”#undef 宏名”终止宏名作用域
带参的一般形式
#define 宏名(参数表) 字符串
如:#define S(a,b) a*b
各参数最好用括号括起来,#define S(a*b) (a)*(b)
17:文件包含
文件包含即一个源文件将另外一个源文件全部内容包含进来
用#include命令来实现文件包含操作
一般形式:#include <文件名> 或#include “文件名”
文件可为.h文件也可为.c文件
<>表示到到存放C库函数的头文件目录中寻找包含文件,””表示先按其中的给出路径查找,如找不到再到C库函数头文件目录中寻找,如#include “/etc/wang.h”
18:条件编译
有以下几种形式
#ifdef 标识符
…1
#else
…2
#endif
作用:若标识符已被#define命令定义过,甚至类似这种“#define 标识符”,则编译1
#ifndef 标识符
…3
#else
…4
#endif
作用:同上面的相反
#if 表达式
…5
#else
…6
#endif
作用:如果表达式为真,则编译5