标签:丢失 ref 包含 wchar_t out type stl 二进制 cores
C++ primer plus记录
大一学习C++ 拿这本书再巩固一下
仅记录个人有新知的地方
2021-3-2 到ch3为止
C++融合三种编程方式:C语言代表的过程性语言;基于C语言添加的OOP;C++模板支持的泛型编程
作为借口的函数头:main被启动代码调用
名称空间:
using namespace std;
using std::cout;
声明不一定是定义:定义声明和引用声明
输出存在着信息编码的转换:数字到字符
函数原型之于函数 类之于对象
头文件<climits>
包含一系列符号常量
C++11变量初始化方法
int a={3};
int a{3};
//下面默认为0
int a={};
int a{};
整型字面值:
int a=42;
int b=0B101; //大小写都行,十六进制也是
int c=042;
int d=0x42
cout<<a<<b<<c<<d<<endl;
cout<<hex; //修改cout显示整数的方式,无输出
cout<<a<<b<<c<<d<<endl;
cout默认统一转换成十进制输出,可以格式化输出来决定输出的进制。
当然无论什么形式,计算机中存储信息都是二进制数据
wchar_t
日文汉字处理系统:程序需要处理的字符集无法用1个8位的char表示。宽字符类型wchar_t来拓展
wchar_t bob=L‘P‘;
wcout<<L"Tall"<<endl; //wcin和wcount支持这种类型
同理还有char16_t char32_t
C++11新增类型
char16_t ch1=u‘q‘;
char32_t ch2=U‘T‘;
浮点数的表达形式:
标准小数点表示法 8.0
E表示法 2.52e+8
浮点常量
1.23f //float
2.34E3f //float
2.3 //double
2.2L //long double
类型转换:
小转大、整型转浮点一般没有什么问题
较大浮点类型转较小浮点类型:精度降低或值超过范围带来的不确信
浮点转整型:小数部分丢失或值超过范围带来的不确信
较大整型转较小整型:超过范围导致可能丢失高位数据
对类型转换的严格更加要求,不允许缩窄
int x=66;
char k={x}; //甚至这种情况不允许,编译器无法提前得知x的范围;基于不允许缩窄原理则不允许
计算表达式中,整型(长度小于int的)默认自动提升为int,即使表达式两端都为short
传统c语言中,float默认自动提升double
其他情况下,当运算涉及两种类型时,较小类型一般会被转换成较大的类型。
C++11有个校验表
在取消函数原型中对于类型的限制,则会默认提升int和double
常用的C和C++强制类型风格不再介绍,新格式的想法就是贴近函数调用
C++引入static_cast<>
static_cast<TYPENAME> (value);
C++11中的auto声明
自动类型推断一般用在STL中更好
std::vector<double> scores;
auto pv=scores.begin();
标签:丢失 ref 包含 wchar_t out type stl 二进制 cores
原文地址:https://www.cnblogs.com/tlam/p/14469440.html