ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++ Primer Notes —— 冷知识、易错、易忘、编程技巧、原理等(缓慢更新 21/11/24)

2021-11-24 18:57:59  阅读:147  来源: 互联网

标签:11 24 易错 int ld signed unsigned char 注释


术语表

术语解释
方法(method)成员函数的同义术语
<< 输出运算符将右对象的值写入左侧运算对象,返回值为左侧对象
>> 输入运算符将左侧对象所指定的输入流读取数据,存入右侧运算对象中,返回值为左侧对象
bit byte word一个二进制0或1为一位(bit) 一个字节(byte)为8位 ;一个字在不同的架构中字节数不一样,如MIPS为32位,则一字为4字节

基础

操纵符 manipulator P6

endl是一个操纵符,写入endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。缓冲刷新操作可以保证到目前为止的程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。 调试语句等应保证“一直”刷新流,否则,若程序崩溃,输出可能留在缓冲区中,从而导致debug时的判断失误

嵌套注释 P8

/**/界定符对注释 不能嵌套 即

/*
*
*此处注释嵌套/**/会出错
*
*/

若需要对调试期间有可能嵌套注释的部分注释,最好的方式是使用单行注释注释掉每一行

///*
//*单行注释中的任何内容都会被忽略
//*
//*/

编译错误传递 P14

单个错误会导致传递效应,导致编译器在其后包含高比实际数量多发的多的错误信息。建议每修正一个错误后或最多修正了一小部分明显的错误后就重新编译,即"编辑编译调试"周期 (edit-complie-debug)

char与signed char ;float与double P31

整型分为两种:signed(省略)和unsigned
而字符型分为三种:char 、signed char 和unsigned char;char和signed char不一样,char实际上会表现为signed或unsigned其中一种,由编译器决定。所以,如果使用char进行运算特别容易出问题,如果需要一个不大的整数,需要决定signed或unsigned
使用double而不是float,因为其通常精确度不够,且double的计算代价与float相差无几,long double更是没有必要,且运行时消耗大。

类型转换

非bool转bool : 0=>false 其他=>true
bool转非bool : false=>0 其他=>1
超出范围的值赋给无符号类型: 值对区间取模后的余数 如

unsigned char a = -1 ; //a = 255

未定义超出范围的值赋给有符号类型: 未定义的(undefined),此时程序可能崩溃或继续工作或产生垃圾数据
注意:int的大小取决于系统环境 如int可能为32或64位。

列表初始化 P40

以下四条语句都可以用来初始化

int a = 0;
int a = {0};
int a{0};
int a(0);

其中带花括号的形式在c++11之后被全面应用,这种初始化形式有一个重要特点:若使用列表初始化且初始值存在丢失信息的风险,编译器将会报错。如

long double ld = 3.14159265358
int a{ld},b={ld}; //错误:转换未执行,因为存在丢失信息的危险
int c(ld),d = ld;//正确:执行,且丢失了部分值

标签:11,24,易错,int,ld,signed,unsigned,char,注释
来源: https://blog.csdn.net/gongfpp/article/details/121519052

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有