需包含头文件
C语言
程序组成
C库函数
需包含头文件
标准输入输出函数(scanf,printf)
单个字符输入输出函数(getchar,putchar)
字符串操作函数(strcmp,strcpy)
文件函数(fopen,fclose)
自定义函数
无参函数
类型名 函数名(【void】){声明部分 执行语句}
有参函数
类型名 函数名(形式参数表列){声明部分 执行语句}
形式参数
调用后释放
实际参数
调用后保留并维持原值
函数的调用
函数名(【实参表列】)
嵌套调用
在调用函数前需对每一个调用的函数做声明
递归调用
函数声明
函数原型
函数类型 函数名(参数类型1,参数类型2)
函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2)
内置函数
在函数首端加关键字inline
不能包括循环语句和switch语句
函数的重载
重载函数的参数个数,参数类型和参数顺序必须至少有一种不同
函数模板
template <typename T> 通用函数定义 或 template <class T>通用函数定义
主函数(main)
首先执行,从上到下顺序执行
数据类型
基本类型
整型
短整型(short int)
整型(int)
长整型(long int)
字符型(char)
浮点型
单精度型
双精度型( double)
长双精度型
布尔型(bool)
派生类型
指针类(*)
定义
基类型 * 指针变量名;
引用
&:取地址运算符
*:指针运算符(间接访问运算符)
const指针
指向常量的指针变量
const 类型名 * 指针变量名;
void指针
指向空类型的数据
总结
int *p
定义p为指向整形数据的指针变量
int *p[4]
定义指针数组p,由四个指向整形数据的指针元素组成
int(*p)[4]
p为指向包含四个元素的一维数组的指针变量
int*p()
p为返回一个指针的函数,该指针指向整形数据
int(*p)()
p为指向函数的指针,该函数返回一个整型值
int**(p)
p为指针变量,它指向一个整形数据的指针变量
枚举(enum)
数组(【】)
一维数组(a[])
定义
类型名 数组名[常量表达式];
引用
数组名[下标]
初始化
int a[10]={0,1,2,3,4,5,6,7,8,9}
int a[10]={0,1,2,3,4}
int a[]={1,2,3,4,5}
应用
数组元素做函数实参
数组名做函数参数
二维数组(a[][])
定义
类型名 数组名[常量表达式][常量表达式]
引用
数组名 [下标][下标]
初始化
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}
int a[3][4]={{1},{5},{9}}
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}
字符数组
定义
与前文类似
引用
数组名直接引用
初始化
用字符串常量初始化
结构体类(struct)
共用体类(union)
类类型(class)
空类型(void)
变量
全局变量
在函数外定义
extern声明外部变量
static声明静态外部变量
局部变量
在函数内部定义,只在本函数范围内有效
static声明静态局部变量
存储类别
动态存储方式
静态存储方式
常量
数值型常量
常数
字符型常量
普通字符常量
单撇号括起来的一个字符
转义字符常量
数据类型转换
强制转换
一般形式
(类型名)表达式
类型名(表达式)
隐式转换
运算转换
不同类型数据混合转换时
赋值转换
把一个值赋给与其类型不同的变量时
输出转换
输出时转换成指定的输出格式
函数调用转换
实参与形参类型不一致时转换
函数基本构成语句
顺序结构
从上到下顺序执行
*,.,& ! 算数运算符(*,/,%,+,-,++,--) 关系运算符(<,<=,>,>=,==,!=) && || 赋值运算符(=) ,
选择结构
if语句
if(表达式)语句1 【else 语句2】
if(表达式)语句
if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3
if语句的嵌套
if() if()语句1 else 语句2 else if()语句3 else 语句4
switch语句
switch(表达式) {case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式3:语句3 default :语句4}
case语句后可加break语句跳出
表达式1?表达式2:表达式3
循环结构
while语句
while(表达式)语句
表达式为非0是执行,先判断后执行
do-while语句
do 语句 while(表达式);
先执行后判断(至少执行1次)
for语句
for(表达式1;表达式2;表达式3)
表达式可省,分号不能省
结束循环
break语句
跳出循环体结束循环
continue语句
结束本次循环