*与&、**
int *p 定义指针,指向int类型数据的指针,
*p;取该指针指向的数值
p取该指针指向的地址
int &q或者person &q 定义引用
&q取该引用的地址
q是相当于java对象
数组
数组名是一个首地址
**指针的指针
typedef与union、struct、enum
enum定义常量 默认为零开始 之后+1
typedef定义类型别名
在联合变量中, 共用同一内存位置, 当一个联合被说明时, 编译程序自动地产生一个变量, 其长度为联合中最大的变量长度。
struct值类型:简单类型、枚举类型和结构类型
引用类型:类(object、class)、接口(interface)、字符串(string)、数组(int[] string[])和委托(delegate)。
new与delete、malloc(3)与free
sizeof(int)
字符与字符串
char str[5]={"abc","edf“}或者{'a','b'}
数组长度5
字符长度为2
字符串长度为2
字符串以空格结束
值传递与引用传递
析构函数与构造函数、虚函数、纯虚函数、内联函数
一个类中可以有多个构造函数,但析构函数只能有一个。对象被析构的顺序,与其建立时的顺序相反,即后构造的对象先析构。
虚函数为了重载和多态的需要,在基类中是有定义的,即便定义是空,所以子类中可以重写也可以不写基类中的此函数!
抽象与接口不能直接实例化对象
纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!
int main(int argc,char** argv)中argc与argv
printf("%d%c%f%ld%lf) int char float long int double
scanf("%d," &a)不能有空格
gets(String)可以有空格
char c=getChar()
putChar(char c)
预处理
编译
汇编
连接、
可执行文件结构
代码段
全局初始化数据区/静态数据区
未初始化数据区
栈区 程序编译时分配
堆区 程序运行才分配的
auto extern register static
常见内存错误
int * test(void)返回局部变量地址
临时空间过大
动态内存管理错误
src与dst内存覆盖
文件描述符
每个打开的文件都分配一个文件符 从3开始
ext2文件系统结构
文件类型
进程
通信