9、stoi和atoi有什么作用?区别是什么?
stoi和atoi都可以用来将string转换成int,atoi的输入是string.c_str(),没有范围检测,超过则输出界。stoi的输入直接是tring,有范围检测,超过int范围会返回error。
10、进制转换相关函数及用法?
指定格式输出:std::otc(8进制)std::dec(10进制)std::hex(16进制)bitset(二进制)
任意进制转十进制:atoi
十进制转任意进制:itoa
十进制转n进制字符串:sprintf snprintf
snprintf: 格式化字符串长度,会在末尾加\0,结尾符包含在长度内部。snprintf的返回值是期望输出到缓存区的字符串长度。返回值的长度不包含\0。如果小于0,则运行出错,大于0小于格式化长度,则运行完全正常。大于等于格式化长度,则说明字符串被截断了。
11、static关键字相关内容
static的作用: 控制变量的存储方式和可见性
- 修饰局部变量:一般情况下,局部变量会存储在栈区。并且在包含语句块结束后生命周期就结束了。加入static修饰后,存储在静态数据区,生命周期会延长到整个程序结束。但作用域不改变。
- 修饰全局变量:对于一个全局变量,它可以在本文件内被访问,也可以被同一个工程下的其他文件访问(添加extern声明即可)但加入static修饰后,就只能本文件访问,即作用域变了。
- 修饰函数:作用效果同上
- 修饰类:对类中的某个函数用static修饰,则表示这个函数属于一个类而不再是这个类中的对象。修饰类中的某个变量,则表示该变量在存储空间内只有一个副本,可以通过类和对象来调用。