使用#if进行注释
#if 0
要注释代码
#endif
c语言中,数组都是传址调用,标量与常量都是按值传递
当被调用函数修改数组数值的时候,实际的参数会被修改
EOF(整形)是文件的结尾
加L“dsuhd”是宽字符类型
声明指针 int *a;a就是一个指针
typedef
声明新的类型名,用typedef
typedef char *ptr_to_char
ptr_to_char声明为一个指向字符的指针类型
ptr_to_char a;
a是一个指向字符的指针
const是声明常量
const只能用于允许使用变量的地方
链接属性 external(外部) internal(内部) none
static关键字可以把链接属性变为internal
extern 标识为external
代码块之外的static用于修改标识符与链接属性
代码块之内的用于修改变量的存储类型
c语言不具备bool型,0代表假,1代表真
左移位<<
右移位>>
无符号类型移位就是移位,有符号类型,移位要看编译器设置
AND,OR,XOR
& ,| ,^
要求操作数都是整数类型
a+=expression相当于a=a+(expressiom)
*是间接访问操作符,用于访问指针所指向的值
&是取地址操作符
.与->用于访问结构中的成员
如果p是一个指向char类型的指针,那么p+1就指向下一个char
如果是p的一个float的指针,那p+1就是指向下一个float
数组声明的时候会保留内存空间
指针不会
结构声明
struct{
int a;
char b;
float c;
}x;
声明了一个名叫x的变量,包含三个成员
标签字段允许为成员列表提供一个名字
struct SIMPLE{
int a;
char b;
float c;
};
标签SIMPLE就与这个成员列表联系起来了
struct SIMPLE x;
或者
用typedef struct{
int a;
char b;
float c;
} Simple;
Simple x;
结构成员通过 .访问
malloc是内存分配
free内存的释放
单链表无法反方向遍历