C/C++ 知识汇总

来源:互联网 发布:dns默认端口号 编辑:程序博客网 时间:2024/06/08 20:16

const

STL容器:(关联容器、顺序容器)
顺序容器:vector,list,deque , string,stack( 适配器类), queue( 适配器类), priority queues( 适配器类)
关联容器:set, multiset,map,multimap, bitset,hash_set, hash_map, hash_multiset, hash_multimap

多态
多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。C++中,实现多态有以下方法:虚函数,抽象类,重载,覆盖,模版。

指针
指向数组的指针:

inta[]={1,2,3,4};int*b=a;*b+=2;   //相当于(*b) = (*b) + 2; 等价于 a[0] = a[0] + 2;*(b+2)=2;//*(b+2)将b所存储的地址加2,此时指向a[0+2], 所以 a[2] = 2;b++;//b = b+ 1, b所存储的地址加1,此时b存储的是a[1]的地址

(指针变量加1,即向后移动1 个位置表示指针变量指向下一个数据元素的首地址。而不是在原地址基础上加1。至于真实的地址加了多少,要看原来指针指向的数据类型是什么)
C语言本身没有输入输出语句,它需要调用库中的输入输出函数。

while
do……while和while……do有什么区别:
1. while循环每次执行循环体之前先对循环条件进行判断求值,如果循环条件为true,则运行循环体部分。
2. do while循环先执行循环体,然后判断循环条件,如果循环条件为true,则执行下一次循环。

函数参数传递
值传递
指针传递

void fun( char *s ) {}main(){ char *p = &a; fun(p); }

此时对s的任何操作, 都不会对p存储的地址产生任何影响;
而对 *s 的操作, 会直接影响到 *p 也就是 a 的值.
引用传递

重载:同一个作用域内的几个函数名字相同,但形参列表不同(数量或类型),称之为重载(overloaded)函数。编译器会根据传递的实参类型推断想要的是哪个函数(main函数不能重载)
不允许两个函数除了返回类型外,其他要素都相同。
(省略形参名字,使用类型别名等。都只是看上去形参列表不同,实际上仍然是一样的)

0 0
原创粉丝点击