更多精彩请关注微信公众号“爱折腾的码农”,二维码见下图。
本篇内容主要总结本人在秋招过程中总结的一些c++相关资料,包括、static、const、内存分配(new/molloc)、sizeof等。
- const
一、修饰普通变量
1、利用const进行修饰的变量在程序的任意位置都不能被修改,如同常数一样,若修改则会导致编译错误;
2、由于常量被定义后就不能修改,因此在定义时必须初始化,这点和引用相同。
3、非const变量在其他源文件中引用的话直接加上extern关键字即可,本文件中只需定义即可, 但是对于const变量在引用的原文件及定义的源文 件中都要加上extern。
非const属性变量
(定义源文件)int num = 0;
(引用源文件extern int num;
const属性变量
(定义源文件)extern const int num = 0;
(引用源文件extern const int num
二、修饰指针
常量指针:指针指向变量的值不可通过该指针修 改,但是指针变量的值可以改变; 例:const int* num
指针常量:指针变量不允许修改,但该地址里的内容可以被修改;
例:int* const num
三、修饰引用变量
1、非常量引用不能绑定在常量上;
2、常量引用既可以绑定在常量上也可以绑定在非常量上;
3、不能通过常量引用去改变被引用的值。
四、修饰成员函数
1.不能修改成员变量和调用非const成员函数(静态成员变量和静态成员函数除外)否则会报错;
2.在函数的声明处末尾和实现处末尾都要加const关键字;
3.可以通过在函数名最后加上const实现重载;
例:void fun(){}
void fun() const{}
4.const 关键字不能与static关键字同时使用,因为static关键字修饰静态成员函数, 不含有 this 指针,不属于具体的对象,只属于 类本身,但是const 成员函数必须具体到某一 实例。
- static
一、修饰静态变量
1.初始化的静态变量在数据段,未初始化的全局变量在.bss段;