- 博客(7)
- 收藏
- 关注
原创 C++散记——浅述using namespace std与std::
2,降低可读性:阅读你代码的人来说(包括未来的你),看到一个没有命名空间前缀的名称可能不清楚它是来自 `std` 命名空间还是其他地方。时,该语句由编译器运行,这个过程通常是非常快的,因为编译器已经对标准库有优化处理,对于编译速度几乎没有影响。这样做的好处在于它不会给未来可能出现的名称冲突留下隐患,同时也使得代码更加易于阅读和维护。1,命名空间污染:标准库中有大量的名称,这些名称对你来说可能只有部分是有用的。两者在编译后生成的机器码是相同的,所以二者的区别与性能无关。
2024-02-07 14:34:14 558 1
原创 C++散记——关于解除指针引用来源的吐槽
在英语中,前缀 "de-" 通常具有 "逆转" 或 "去除" 的意义,在指针的上下文中,"dereferencing" 一个指针意味着访问指针所指向的内存地址上存储的值。这种用法可能源于更一般的概念,即从一种间接的状态(一个引用或地址)转换到直接的状态(实际的值)。因此,"dereferencing" 意味着从抽象的引用移动到具体的值,尽管这并不涉及取消或逆转引用本身。需要注意的是,这个操作仅仅是安全地停止使用这个指针,但之前这个指针所指向的内存地址并没有被释放,这可能导致内存泄漏或者未定义行为。
2024-01-27 18:25:13 412
原创 C++散记——c++ primer plus 4.3 strtype3
strcpy和strcat函数存在安全隐患的原因在于它们无法检查目标缓冲区的大小,这可能导致缓冲区溢出的问题——这意味着可能会有超出目标缓冲区大小的数据写入缓冲区。因此,C++标准引入了更加安全的strcpy_s和strcat_s函数,这些函数在操作之前会检查目标缓冲区的大小,以确保不会发生缓冲区溢出。在C11标准中,像`strcpy_s`这样的函数名称中的“s”代表“secure”
2024-01-25 14:19:05 567
原创 C++散记——C++ primer plus程序清单3.13 数值转换问题:为什么debt = 1634811904
int类型一个整数通常占用4个字节,即32位。因此能存低32位后8个数字0x61714000。猜测:7.2E12=7200000000000=68c61714000(16进制)
2024-01-21 16:08:51 664 1
原创 C++散记,setf函数
它是所有输入输出流类的基类,包括 `istream`、`ostream`、`iostream` 等。而 `mask` 是要影响的掩码(mask)。`mask` 的作用是在设置 `flags` 之前,先清除一些标志位,以确保 `flags` 只影响我们想要的输出格式标志。其中,格式化标志(format flags)就是上文提到的fmtflags,它用来控制输出流的格式化行为,例如指定输出小数点后的位数、输出浮点数的格式、对齐方式等。在本例中,`ios_base::floatfield` 就是要影响的掩码。
2024-01-21 11:51:27 571 1
原创 double类型和float类型的精度问题
这意味着float类型只保证6位有效,而double在这个例子里保证了13位有效(实际上在系统中有效位数为15)float类型的tub在第7个3后有了误差,而double类型的mint显示了13个。在运算10/3时,cout打印6位小数。
2024-01-20 23:28:10 409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人