目录
常见的C99头文件
-
stdio.h: 标准IO接口printf(),scanf() -
stdlib.h: 通用工具malloc(),free(),atoi() -
stdarg.h: 可变参数处理va_list -
stddef.h: 常用类型以及宏的定义size_t,NULL -
string.h/strings.h: 字符串操作函数strcat(),strcasecmp() -
ctype.h: 字符操作函数或宏toupper() -
time.h: 时间和时区操作函数time() -
stdint.h: 整数类型及各整数类型的极值 -
stdbool.h: true、false等bool类型 -
math.h: 数学函数函数 含义 abs(x) 返回x的绝对值 sin(x) 返回x的正弦值(弧度制) cos(x) 返回x的余弦值 tan(x) 返回x的正切值 exp(x) 返回Ex的值 asin(x) 返回x的反正弦值 acos(x) 返回x的反余弦值 atan(x) 返回x的反正切值 cbrt(x) 返回x的立方根
常见C语言预处理器指令
-
#include: 包含一个源代码文件 -
#define: 定义宏 -
#undef: 取消已定义的宏 -
#ifdef: 如果宏已经定义,则返回真 -
#ifndef: 如果宏没有定义,则返回真 -
#if: 如果给定条件为真,则编译下面的代码 -
#else: #if 的代替方案 -
#elif: 如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码 -
#endif: 结束一个 #if……#else 条件编译块 -
#error: 当遇到标准错误时,输出错误消息 -
#pragma: 使用标准化方法,向编译器发布特殊的命令到编译器中
位运算符
| 运算符 | 描述 | 实例 |
|---|---|---|
& |
按位“与” | |
| |
按位“或” | |
^ |
“异或” | |
~ |
按位“取反” | |
<< |
二进制“左移” | |
>> |
二进制“右移” |
数据类型
| 数据类型 | 大小Size |
|---|---|
char |
1字节 |
int |
2~4字节 |
short int |
2字节 |
long int |
4字节 |
float |
4字节 |
double |
8字节 |
long double |
10字节 |
C中的枚举Enum
简单的示例
|
|
指针、可怕的指针
指针是一个变量,它存储另一个变量的内存地址作为其值。
函数指针(用来存放函数的地址)
指针函数(返回值是指针的函数)
例如strcpy(char *str1, const char *str2)返回str1
另外需要注意的杂项
-
使用
const修饰的只读变量不具有“常量表达式”属性,因此无法用来表示定长数组的大小,或者在case语句中使用。“常量表达式”本身会在程序编译时被求值,而“只读变量”只能在程序运行时才被得知。 -
变量存储类型:
auto默认;register声明告诉编译器,它所声明的变量在程序中使用频率较高,因此可以将register变量放在机器的寄存器中,使程序更小、执行速度更快,(但是编译器可以忽略此选项);staticextern
-
*p++问题
若有定义int i =2, a[10], *p=&a[i];,则*p++等价于a[i++]。
++的优先级比*高,但是++是后缀,先使用值再加加,所以是加之前的值去解引用。
待续未完……此外,如有侵权,深感歉意,烦请邮箱联系。