
C++
路漫漫其修远兮?
会当凌绝顶,一览众山小
展开
-
C/C++字符常量解析规则
C/C++字符常量解析规则原创 2022-06-04 08:35:16 · 751 阅读 · 0 评论 -
C++向二进制文件里写入string类型
当需要把string类型的数据写入二进制文件之后再读取的时候会出现错误,例如string test;ofstream out("xxx",ios:binary);out.wirte((char*)&test,sizeof(test)));这是不正确的做法,原因是string在stl中其实是一个类,这样写入的其实是test这个类对象,因此写到文件的其实是这个类的数据和指向这个类的指针。同时,因为string类的字符串是用new在堆上分配的,string类本身只包含字符串的指针,用c_str(原创 2022-01-16 20:31:11 · 4274 阅读 · 1 评论 -
C++内置类型的自动初始化问题
例1、程序中有一个数据区,用来存放已初始化全局变量,静态变量和常量,这部分增加了目标文件的大小;还有一个未初始化数据区(BSS),用来存放未初始化全局变量,BSS的数据在程序开始执行之前被初始化为0或NULL,实际上BSS段数据在目标文件中只占一个符号位,编译器并没有给变量分配空间,“初始化为0”是指链接阶段才申请空间,并初始化。局部非静态变量未显示初始化时是一个随机值。即全局变量时初始化为0,局部变量时初始化为随机值,本题中由于x属于全局变量,所以默认初始化值为0.例2、 下面描述正确的是(.原创 2021-09-14 21:54:14 · 544 阅读 · 0 评论 -
C++之多态性
原创 2021-06-05 10:10:07 · 130 阅读 · 3 评论 -
C++动态数组创建
一、一维动态数组int main(){ int n; cin >> n; int* a = new int[n];}声明一个指针,用new开辟动态空间二、二维动态数组int main(){ int n; cin >> n; int m; cin >> m; int** a= new int* [m]; for (int i = 0; i < m; i++) { a.原创 2021-04-01 19:43:24 · 14680 阅读 · 5 评论 -
用位运算进行大小写字母转换
用位运算进行大小写字母转换就ASCLL码的二进制形式来看,除第5位(位数从0开始计算)外,大写字母和小写字母的其它各位都一样。大写字母ASCII码的第五位为0,小写字母的第5位为1.因此,一个字母,不管它原来是大写字母还是小写字母,将它的第5位置0,它就必然变成大写字母;将它的第五位置1,则它必然变成小写字母汇编语言:...原创 2021-02-05 16:15:21 · 2550 阅读 · 6 评论