C语言小结

1.数据类型
short (unsigned表示无符号整数)
int   (unsigned表示无符号整数)
long  (unsigned表示无符号整数)
float
double
char
bool
枚举
结构体
公用体
自定义类型 (typedef 基类型 新类型)
2.变量的定义
类型名 变量名
3.常量的定义
const 类型名 常量名
4.类型转换
(类型名)转换值
5.转义字符
\n-换行
\t-横向跳格
\v-纵向跳格
\b-退格
\r-回车
\f-换页
\\-反斜杠
\'-单引号
\ddd八进制数代表的字符
\xhh十六进制数代表的字符
6.数据的输出
1)printf(格式控制参数,输出项1,输出项2,...)
格式字符:
u-无符号十进制整数
d-十进制整数
o-八进制整数
x-十六进制整数
e-指数形式浮点数
f-小数形式浮点数
g-e和f中的短者
c-字符
s-字符串
补充:
l前缀表示long,h前缀表示short
m.n中m表示总长度、n表示小数长度
0表示空位是否用0填补(否则用空格填补)
2)putchar(字符)
7.数据的输入
1)scanf(格式控制参数,地址1,地址2,...)
格式字符:
同上
补充:
同上(没有n)
*表示虚读
2)getchar()
8.选择语句
if语句(同?:)
switch语句
9.循环语句(break是终止循环、continue是继续循环)
for语句
while语句
do while语句
10.跳转语句
goto语句
11.一维数组
1)定义
数组类型 数组名[维数]
2)初始化
数组类型 数组名[维数]={...}
3)引用
数组名[索引]
4)数组名作为函数参数
参数表中是数组类型 数组名 [维数](形式数组和实际数组是占有相同的内存空间)
12.二维数组(一维数组的一维数组)
1)定义
数组类型 数组名[维数][维数]
2)初始化
数组类型 数组名[维数][维数]={{...},{...}}
3)引用
数组名[索引][索引]
13.多维数组(数组的数组)
类似二维数组
14.字符串
1)存储方法
字符数组,最后一位是'\0'
2)字符数组初始化
char 数组名[维数]={...}
char 数组名[]={...}
char 数组名[维数]={"..."}
char 数组名[维数]="..."
3)字符串输入
scanf("%s",字符串名)
gets(字符串名)
4)字符串输出
printf("%s",字符串名)
puts(字符串名)
4)字符串运算函数
字符串复制strcpy(str,...)
字符串连接strcat(str1,str2)
字符串比较strcmp(str1,str2)
字符串长度strlen(str)
15.函数定义
返回值类型 函数名(参数表)
{
 函数体
}
16.函数调用
函数名(参数表)
17.动态变量
1)自动变量
一般变量
2)寄存器变量
定义时使用register
存储在寄存器中
18.静态变量
定义时使用static
程序结束才会销毁
静态局部变量只在本函数(或分程序)中有效
19.外部变量
声明时使用extern
说明变量在其它地方定义过了
外部变量是全局变量
20.宏替换
1)#define 宏名 宏体
2)#define 标识符(形参表) 宏体
21.文件包含
#include "....h"-范围大
#include <...>-范围小
22.条件编译
1)基本结构1
#if M
   statement1
#elif N
   statement2
#else
   statement3
#endif
如果M是true则编译statement1
如果M是false并且N是true则编译statement2
如果M是false并且N是false则编译statement3
2)基本结构2
#ifdef/#ifndef M
   statement
#endif
如果M定义/未定义则编译statement
23.指针
1)作用
存储地址
2)定义
类型名 *指针变量名
3)使用
*取地址中的值
&取地址
[]指针先移动后取地址中的值
4)运算
+向后移
-向前移
5)指向指针的指针
定义
类型名 **指针变量名
6)指向函数的指针
定义
类型名(*指针变量名)(形参列表)/typedef 类型名(*指针变量名)(形参列表)
指向函数
指针变量名=函数名(函数名表示函数的地址)
调用函数
(*指针变量名)(参数表)
7)指针与数组
数组名表示数组的首地址
8)指针与字符串
char *指针变量名="...",指针变量指向字符串中的第一个字符
9)main()函数参数
argc表示作为参数的字符串个数
argv[n]表示作为参数的字符串的第一个字符的地址
24.枚举
1)定义
enum 枚举名 {枚举量1,枚举量2,...}
2)枚举量
枚举量的类型是枚举
3)枚举量的值
默认情况下第一个枚举量的值是0,后一个枚举量的值是前一个枚举量的值加1
4)枚举量与整数的类型转换
a)枚举量可以自动转换为整数
b)等于枚举量的值的整数可以强制转换为枚举量
c)不等于枚举量的值的整数可以强制转换为枚举量,结果不确定
5)枚举变量
a)定义
枚举名 枚举变量名
b)赋值
枚举变量名=枚举量名
6)设置枚举量的值
enum 枚举名 {枚举量1=值1,枚举量2=值2,...}
7)枚举的取值范围
a)计算
大于枚举量的值的最大值的2次幂的最小值减一是上限
如果枚举量的值的最小值大于0,则下限是0
如果枚举量的值的最小值小于0,则下限的计算方法与上限相反
b)作用
位于枚举的取值范围内的整数强制转换为枚举量后可以赋给枚举变量
25.结构体
1)定义
struct 结构体名
{
 成员变量定义
};
struct 结构体名 结构体变量名
struct 结构体名 *结构体指针名
----------------------
typedef struct 结构体名
{
 成员变量定义
}结构体别名,*结构体指针别名;
结构体别名 结构体变量名
结构体别名 *结构体指针名
结构体指针别名 结构体指针名
2)引用
结构体变量名.成员变量名
结构体指针名->成员变量名
26.公用体
1)定义
union 公用体名
{
 类型名 成员变量1;
 类型名 成员变量2;
 ...
};
2)引用
公用体变量名.成员变量名
公用体指针名->成员变量名
3)注意
公用体里的成员变量共享同一个内存空间
公用体所占内存空间的大小等于公用体里最大的成员变量的大小
27.动态内存分配
1)分配内存空间
(类型名 *)malloc(大小) 空间分配后初始化为随机数
(类型名 *)calloc(空间数,单个空间大小) 空间分配后初始化为零
2)释放内存空间
free(指针变量名)
3)重新分配内存空间
(类型名 *)realloc(指针变量名,大小)
28.位运算
~按位取反
<<左移(补0)
>>右移(无符号整数补0,有符号整数正数补0负数补1)
&按位与
|按位或
^按位异或
29.文件
1)定义文件指针
FILE *文件指针名
2)打开文件
fopen(文件名,文件使用方式)
文件使用方式:
r-为读打开字符文件
w-为写打开字符文件
a-向字符文件追加内容
rb-为读打开二进制文件
wb-为写打开二进制文件
ab-向二进制文件追加内容
r+-为读写打开字符文件
w+-为读写创建字符文件
a+-为读写打开字符文件
rb+-为读写打开二进制文件
wb+-为读写创建二进制文件
ab+-为读写打开二进制文件
3)关闭文件
fclose(文件指针名)
4)写一个字符
fputc(ch,fp)
5)读一个字符(EOF表示文件结束)
fgetc(fp)
6)写字符串
fputs(str,fp)
7)读字符串
fgets(str,n,fp)
8)格式化写
fpintf(fp,格式控制参数,输出项1,输出项2,...)
9)格式化读
fscanf(fp,格式控制参数,地址1,地址2,...)
10)按记录的方式写
fwrite(buffer,size,count,fp)
11)按记录的方式读
fread(buffer,size,count,fp)
12)判断文件结束
feof(fp)(值是1则结束值是0则没结束)
13)设置指针位置
fseek(文件指针名,位移量,起始点)(0表示开头、1表示当前、2表示结尾)
14)返回指针位置
ftell(文件指针名)
15)指针回零
rewind()
16)出错检验
ferror(文件指针名)
30.补充
1)结束程序运行
exit(0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值