C++ primer阅读笔记——Chapter2

2023-12-21 17:58

本文主要是介绍C++ primer阅读笔记——Chapter2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Chapter2 变量和基本类型

基本内置类型

算数类型:整数,浮点,单个字符,布尔值;void特殊类型,没有对应的值,仅用在有限的情况下,通常用作无返回值函数的返回类型。

C++标准规定了每个算术类型的最小存储空间,但它并不阻止编译器使用更大的存储空间(因机器的不同而不同)。

wchar_t,宽字符型,用于扩展字符集,汉字日语,这些字符集中的一些字符不能用单个char表示。

short一般为半个机器字长(16位),int为一个机器字长(32位),long为一个或两个机器字长。

8位的块作为一个字节,32位的块,即4个字节作为一个字(word),要让在某地址的字节具有意义,必须要知道存储在该地址的值的类型,一旦知道了值的类型,就知道了表示该类型的值需要多少位和如何解释这些位。举例特别好,无符号整数和字符型的区别,地址上的字节表示是相同的,但是由于类型不一样,字节表示什么是完全不同的。

带符号类型(signed)可以表示正数负数0,无符号类型只能表示大于等于0的数,short int long默认为有符号类型,要在前面加上unsigned变成无符号类型,只写一个unsigned默认为unsigned int类型。对于char类型的说明,char,unsigned char,signed char,需要在声明变量时指定吗?使用哪种char表示方式由编译器而定。

在C++中,把负值赋给unsigned类型对象是完全合法的,结果是该负数对该类型的取值个数求模后的值。不过给变量赋值的时候还是尽量满足其取值范围。

类的取值范围决定了浮点数所含的有效数字位数。对于实际的程序来说,float类型精度通常是不够的,float型只能保证6位有效数字,double型至少可以保证10位有效数字,能满足大多数计算的需要。

具体使用哪种内置类型,不仅要考虑问题本身需要,还要考虑计算代价,性能代价。

字面值常量

  • 整型字面值规则
    • 0开头表示八进制,0x、0X开头表示16进制
    • 默认类型int,long,可以通过在数值后面增加后缀,强制转换类型为long,unsigned,unsigned long,同时加LU,顺序大小写组合无关,但不能有空格。
  • 浮点字面值规则
    • 科学计数法表示:3.14159E0F,截断来看,F是后缀,代表单精度(浮点数后加L代表扩展精度),E0表示科学计数法e的0次幂,大小写无关。0e0=0.
  • 转义字符->通用转义字符(ASCII码表示字面值常量)
  • 字符串字面值
    • C++所有字符串字面值都由编译器在末尾自动添加一个空字符’\0’,'A’表示单个字符A,"A"表示包含字母A和空字符两个字符的字符串。
    • 连接字符串面值和宽字符串面值出现什么结果?连接不同类型的行为是未定义的。不要依赖未定义行为,即使执行成功也是巧合。
    • 在一行的末尾加一个反斜杠可以将此行与下一行当做同一行处理。

变量

强静态类型:C++是静态类型语言,在编译时进行类型检查。操作是否合法在编译时检查。

C++关键词不是定义在std中的那些cout,别搞混了,不是一种东西。

对象的定义

标识符:定义很基本很重要:

const限定符

引用

typedef名字

枚举

类类型

编写自己的头文件

这篇关于C++ primer阅读笔记——Chapter2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520963

相关文章

【C++ Primer Plus习题】13.4

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: main.cpp #include <iostream>#include "port.h"int main() {Port p1;Port p2("Abc", "Bcc", 30);std::cout <<

C++包装器

包装器 在 C++ 中,“包装器”通常指的是一种设计模式或编程技巧,用于封装其他代码或对象,使其更易于使用、管理或扩展。包装器的概念在编程中非常普遍,可以用于函数、类、库等多个方面。下面是几个常见的 “包装器” 类型: 1. 函数包装器 函数包装器用于封装一个或多个函数,使其接口更统一或更便于调用。例如,std::function 是一个通用的函数包装器,它可以存储任意可调用对象(函数、函数

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

06 C++Lambda表达式

lambda表达式的定义 没有显式模版形参的lambda表达式 [捕获] 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 有显式模版形参的lambda表达式 [捕获] <模版形参> 模版约束 前属性 (形参列表) 说明符 异常 后属性 尾随类型 约束 {函数体} 含义 捕获:包含零个或者多个捕获符的逗号分隔列表 模板形参:用于泛型lambda提供个模板形参的名

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝