C++干货笔记
- 作用域运算符::取全局变量,例如cout<<::a<<endl;
- 命名空间函数在外定义,namespace;
- 前置++变量先加再表达式 ++a
后置++先表达式后变量+1 b++
- 标识符 (1.标识符不能是关键字
2.由下划线,字母,数字组成
3.第一个必须为字母,下划线
4.字母有大小写)
- rand是伪随机数,rand()根据系统时间进行操作生成,短时间随机数基本不变 int num=rand()%100+1 生成0+1~99+1de 随机数,解决办法添加随机数种子,系统时间生成随机数,防止每次一样srand((unsingned int不带符号的整型变量)time(null));加include(ctime),还可以用for循环限定次数
- do...while()先循环,易死循环,while(1)先有条件后循环
- 加system是一个C语言和C++下的函数。windows操作系统下system () 函数详解主要是在C语言中的应用,system函数需加头文件<stdlib.h>后方可调用。getchar()类似system("pause")意思就是让程序暂停bai一下,然后按任意键du继续,初学的时候最多见于程序的末zhi尾处,用于看运行结dao果,避免程序一闪而过。相同的我们还可以用getchar(),避免程序运行完直接结束而看不到运行结果。
- 冒泡排序,对比相邻的两个数找到最大的一个数将最大的去掉到第二轮再次对比,轮数=元素个数-1;对比次数=元素个数-排序的轮数--1
- 32位操作系统指针占4个字节,不管啥类型。64位占8个,定义使用指针可以读写修改原有的数。
- 空指针初始化指针变量,指向内存编号为0的空间,内存不可以访问。0~255之间系统占有不可访问,野指针也不可访问
- 常量指针:指针指向的内容不可以改,但是指向可以改,例如const intp=&a;p=20错误,p=&b正确。指针常量:相反,int const P=&a;内容可改指向不可改;const int const P=&a,修饰指针也修饰常量,都不可以改。
- 指针遍历输出 *(p++)右4个字节;地址传递改变实参的值。
- 运行前:代码区共享只读存放二进制,全局区包含全局变量和静态变量,常量区字符串常量和const 修饰的全局常量,程序结束后由操作系统释放。另外还有的局部变量常量。
- 运行后:栈区由编译器管理释放,不要返回局部变量的地址和引用,存放在栈区的数据在函数执行完后自动释放,编译器第一次保留,第二次乱码。存放局部变量和形参。堆区由程序员操作是否回收,new将数据开辟到堆区,返回该类型的指针,没有delete释放,可以多次利用。指针本质上是局部变量,放在栈上,指针保存的数据放在堆区。int *a=new int(10),一个数,delete p;int *arr=new int[10],数组,delete[]arr.
- const int& ref=10,系统优化,int& ref=10错误没有合法的内存空间,二者可以作为重载条件。fun(a)无const;fun(10)调用有const