有关函数声明的空间问题
一个函数在声明后如果不写函数体是不会分配空间的,所以实现这个函数也就相当于初始化函数这个变量,同时也就引申出了变量如果只声明的话是不会分配的空间的?可以这么认为,因为静态变量跟全局变量都是自动初始化为0的。
另外在C语言中 void fun(); 等同于 void fun(...);
在C++语言中 void fun(); 等同于 void fun(void);55 89 e5 83 ec 10这是函数开头内存里存的东西,暂时不知道是什么,尾巴是xx c9 c3,也暂时不知道是什么东东。
指针跟引用的区别
引用不能非空,从而用的时候不需检查,从而更有效率。
int (*a)[10] 其实跟int a[10]一个意思。
预处理的#define宏定义
#define其实就是字符串的代替,正因为这个原因代替的是注意参数都带上括号,且不用分号,比如#define MAX(A,B) ((a)>(b)?:(a),(b))
内联函数(inline)则是指函数简单多次调用的时候直接在那个地方插入,需要检查类型之类的
malloc/free与new/delete的区别
前者是库函数,后者是操作符。后者对对象的构造及析构自动完成。另外free跟delete都是说 内存可以用前面说的那块地方,而指针还是指到那里,下次你再更改指针的时候会发生意想不到的事,所以需要将指针指向0,这样下次改的时候,也是预想之中的错误。
句柄
句柄就是一个32位的uint,用来标记该应用程序存放内存地址的地址,这个值是确定的,而它里面的内容也就是对象实际运行的地址是随机的。