码迷,mamicode.com
首页 > 编程语言 > 详细

C++ primer plus 学习记录

时间:2021-03-03 12:01:37      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:丢失   ref   包含   wchar_t   out   type   stl   二进制   cores   

C++ primer plus记录
大一学习C++ 拿这本书再巩固一下
仅记录个人有新知的地方
2021-3-2 到ch3为止

ch1 预备知识

C++融合三种编程方式:C语言代表的过程性语言;基于C语言添加的OOP;C++模板支持的泛型编程

Ch2 进入C++

作为借口的函数头:main被启动代码调用

名称空间:

using namespace std;
using std::cout;

声明不一定是定义:定义声明和引用声明

输出存在着信息编码的转换:数字到字符

函数原型之于函数 类之于对象

ch3 处理数据

头文件<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

类型转换:

  1. 初始化和赋值进行的转换

小转大、整型转浮点一般没有什么问题
较大浮点类型转较小浮点类型:精度降低或值超过范围带来的不确信
浮点转整型:小数部分丢失或值超过范围带来的不确信
较大整型转较小整型:超过范围导致可能丢失高位数据

  1. C++11的{}方式初始化进行的转换

对类型转换的严格更加要求,不允许缩窄

int x=66;
char k={x}; //甚至这种情况不允许,编译器无法提前得知x的范围;基于不允许缩窄原理则不允许
  1. 表达式中的转换-隐式自动转换

计算表达式中,整型(长度小于int的)默认自动提升为int,即使表达式两端都为short
传统c语言中,float默认自动提升double
其他情况下,当运算涉及两种类型时,较小类型一般会被转换成较大的类型。
C++11有个校验表

  1. 传递参数时的转换

在取消函数原型中对于类型的限制,则会默认提升int和double

  1. 强制类型转换

常用的C和C++强制类型风格不再介绍,新格式的想法就是贴近函数调用
C++引入static_cast<>

static_cast<TYPENAME> (value);

C++11中的auto声明
自动类型推断一般用在STL中更好

std::vector<double> scores;
auto pv=scores.begin();

C++ primer plus 学习记录

标签:丢失   ref   包含   wchar_t   out   type   stl   二进制   cores   

原文地址:https://www.cnblogs.com/tlam/p/14469440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!