C++知识点

来源:互联网 发布:算法导论是c语言 编辑:程序博客网 时间:2024/06/07 20:22

chapter one

1 typedef可以同时为变量定义两个别名

  比如:typedef struct student{}stu1,stu2;

2 .h是代码文件,而不是二进制文件,.lib是静态链接库,被包含在整个程序中,需提供.h和.lib文件。dll动态链接库应该是二进制文件,动态链接,可用于模块链接不用重新编译整个程序,比如程序更新,是运行时库,包含.dll和.lib。好像都是链接时使用。lib和dll其实是.h的实现文件?编译时只需要函数声明,而连接时需要对应函数的实现。

3 const指针和const迭代器规律不同。const int* a和int const* a相同,都是指向常量的指针,称为常量指针,即*a=2错误,不能改变指向对象的值。而int* const a则是指针常量,指针指向的对象可以变,但是指针不能指向其他对象。

迭代器规律相反,const iterator iter本身不能改变,iter++是错误的,而*iter = 3是正确的。const_iterator则是迭代器自身可以改变,指向的对象不能改变。

4 模板特殊化和局部特殊化,重载和特化

5 非类型模板参数:将模板的参数具体化,从而可以传入具体变量而不是类型名。

6 堆栈存放的变量:堆存放程序员创建的变量(new出来的,记忆技巧:堆比较杂乱因为是人制造的),栈存放系统自动分配的变量。还有常量区和全局区(存放全局变量和静态变量)

7 静态变量、全局变量。静态局部变量和全局变量两者都存活到程序结束,区别是静态局部变量对其他函数不可见。静态全局变量和全局变量的区别是,静态全局变量在其他文件不可见。


0 0
原创粉丝点击