//下面这个是什么意思?
//endl确保程序继续运行前刷新输出(将其立即显示在屏幕上),而使用“\n”则不能提供这样的保证
//这意味着在一些系统中,有时可能在输入信息后才会出现提示。
//使用tab代码补全
//基本类型和复合类型
//整数 浮点数 数组 字符串 指针 结构
//可以通过在变量名前加前缀来表示变量的数据类型。
//str或sz 以空字符结束的字符串
//b 布尔值 p 指针 c 单个字符
//c++的基本数据类型确保的是最小长度
/*
short至少16bit
int至少与short一样长
long至少32bit
longlong至少64bit 且至少与long一样长
*/
//不同的系统,int的长度不同
//sizeof()返回类型或变量的长度,单位是字节byte
//<climits>中包含了数据类型限制的信息。INT_MAX是int的最大取值,CHAR_BIT是字节的位数。还有很多其他。
//short可以节省内存,即使其与int长度相同,但是当int从16bit系统到32bit system之后,用于int存储的内存量将加倍。
//只需要一个字节,可以用char
//用不同进制表示的数字,都可以写,但是存储的时候都是按照二进制存储的。
//输出时候如果不加控制,一般是以十进制输出的。
//数字后面带后缀,就可以被存储成不同的数据类型。
//U 或者 u unsigned int
//ul uL UL LU unsigned long
//unsigned int 用来表示十六进制数是最合适的
//cout.put(ch)
//cin.get(ch)
//现代系统并非支持所有的转义序列
//\b可以让光标往回退然后更新输入流,比如输出了一堆下划线然后需要在上面填东西就可以用这个
//字符集
//ASCII是Unicode的子集
//char也有unsigned 和 signed
//unsigned的表示范围是0-255
//signed的是-128-127
/*
宽字符类型 wchar_t
可以表示扩展字符集
这是一个整数类型,有足够的空间,表示系统使用的最大扩展字符集
这个时刻在变化,跟底层(underlying)类型有关
要输入和输出wchar_t类型,
可以使用wcin、wcout,用于处理wchar_t流
同时可以在字符串前加 L 表示宽字符串
使用Unicode或者ISO 10646的时候应该知道有这种类型
*/
/*
char16_t和char32_t
二者都是无符号的,长度为16、32bit。
前缀u表示前者,U表示后者
跟随底层,可能随系统变化。
*/
//要在声明中对常量进行初始化
/*
cout.setf()
float的精度比double低
浮点数有优点有缺点
浮点数也有后缀,f表示float,默认是double。
*/
/*
结合性:乘除都是从左到右结合的
*/
/*
大的浮点类型赋给小的,潜在问题是精度降低,值可能超出目标的类型的范围,这种情况下结果不确定。
浮点转换整形,小数部分丢失,原来的值可能超出目标类型的取值范围
大的整形转换成小的整形,后半句同上后半句
初始化的时候,如果用大括号,这是类似列表的初始化,不允许缩窄,变量的类型可能无法表示赋给他的值
但是可以long给了int,因为编译器知道long至少跟int一样长
【表达式中】进行算术运算时,
一些类型一出现便会自动转换。
例如bool\char\unsigned char\signed char\short会首先被转换为int
这叫做整型提升(integral promotion)
如果两种类型的长度相同,计算机回寿县吧unsigned short转换为unsigned int
wchar_t->第一个宽度足够存储wchar_t存储的类型:int,unsigned int, long, unsigned long
c++11的校验表,参见c++primer plus Page64下方
*/
/*
char足够大,可以储存计算机基本字符集的任何成员
wchar_t足够大,足以储存计算机扩展字符集的任何成员
*/
/*
初始化指的就是使用大括号。
其他的,那叫赋值
一般不要让编译器去计算数组中有几个值,最好是自己实现说明好,毕竟可能在初始化的时候少写了一个值
c++11的 初 始 化: 可以省略等号,大括号中啥也不写则默认所有的元素都为0,列表初始化禁止缩窄变换(要填入的大,容器小)
c++11新增了array,STL还有vector
c-style的字符串可以被拼接
*/
/*
cin.get() cin.getline()在读取空行的时候出现的问题????????????????????????????????
见chapter5,6,17
要注意,换行符也会留在输入队列中
所以混合使用cin>>和cin.getline()的时候记得在两个之间加一个cin.get()
或者(cin>>year).get()
string的getline和cin.getline()是不同的,参数不同,用法不同。
c++11中有原始字符串
*/
//位字段
//union共用体,可以用在数据使用两种或更多种类型(格式)但不会同时使用的时候。
//地址是相同的
//常常用来操作系统数据结构或者硬件数据结构
《C++PrimerPlus》笔记 - 到union之前的一些杂记
最新推荐文章于 2024-03-04 23:44:10 发布