C++ Primer第2章

今天学到的

30页~49页。

1.算术类型的选择,一般只用int,double。超出int则用long long,而不用long。浮点型用double而不用float,二者计算成本差别不大。

2.相加前先把i转化为无符号数。如果int占32位。则i mod 2的32次方,即-42 mod 4294967296 = 4294967254。然后与u相加,4294967256 + 10 = 4294967264。输出4294967264。

unsigned u = 10;
int i = -42;
cout << u + i << endl;

3.数值为20的字面值  20/*十进制*/    024/*八进制*/    0x14/*十六进制*/。

4.声明与定义。如果要在多个文件中使用同一变量,就必须把声明和定义分离。变量的定义必须出现且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明,却绝对不能对其进行重复定义。

double pi = 3.1416;   //定义
extern double pi;     //声明

5. C++中大多数作用域都以花括号为分隔。

6.引用即别名。

7.指针

int ival = 42;        //定义一个int类型的变量ival,初值为42
int* p = &val;        //定义一个int*类型的指针p,用来存放int类型变量的地址。使用取地址符(操作符&)获取ival变量的地址,然后赋给p
int* pp = p;          //定义一个int*类型的变量pp,把p中存放的地址赋给pp
cout << *p << endl;   //使用解引用符(操作符*)来访问该地址的对象

明天要学的

49页~118页。

第2章 变量和基本类型。

第3章 字符串,向量和数组。

时间: 2024-10-14 11:47:29

C++ Primer第2章的相关文章

C++ Primer 笔记 第二章

C++ Primer 第二章 变量和基本类型 2.1基本内置类型 有算数类型和void类型:算数类型储存空间大小依及其而定. 算数类型表: 类型 含义 最小储存空间 bool 布尔型 - char 字符型 8 wchar_t 宽字符型 16 short 短整型 16 int 整型 16 long 长整型 32 float 单精度浮点型 6位有效数字 double 双精度浮点型 10位有效数字 long double 扩展精度浮点型 10位有效数字 2.1.1整型 包括整数字符和布尔型. 字符型:

C++ Primer 笔记 第一章

C++ Primer 学习笔记 第一章 快速入门 1.1 main函数 系统通过调用main函数来执行程序,并通过main函数的返回值确定程序是否成功执行完毕.通常返回0值表明程序成功执行完毕: main函数返回值必须是int类型. 参数: main(int argc, char *argv[]) ; argc:参数个数: argv:参数(字符串形式,第一个参数是可执行文件的URL) 编译与执行 IDE(集成开发环境)将编译器与相关的构建与分析工具绑定在一起. 命令行编译与执行 调用GNU编译器

C++ Primer第1章

今天学到的 0页~30页. 1.编译器错误类型 语法错误(syntax error) 类型错误(type error) 声明错误(declaration error). 2. 类的定义通常写在头文件里. 3. cin cout cerr clog 都是iostream类型的对象. 4. cerr(标准错误,用来输出警告和错误信息) ,默认情况下,写到cerr的数据是不缓冲的. 5. clog(用来输出程序运行时的一般信息,存入一个日志文件中),默认情况下,写到clog的数据是被缓冲的. 6. e

C++primer第四章 数组和指针

4.1. 数组 数组是由类型名.标识符和维数组成的复合数据类型(第 2.5 节),类型名规定了存放在数组中的元素的类型,而维数则指定数组中包含的元素个数. 数组定义中的类型名可以是内置数据类型或类类型:除引用之外,数组元素的类型还可以是任意的复合类型.没有所有元素都是引用的数组. 4.1.1. 数组的定义和初始化 数组的维数必须用值大于等于 1 的常量表达式定义(第 2.7 节). 此常量表达式只能包含整型字面值常量.枚举常量(第 2.7 节)或者用常量表达式初始化的整型 const 对象. /

C++ Primer第18章Vector的再实现及bug修正

C++Primer第18.1.2节在介绍allocator类的时候,给了一个仿照标准库中vector的例子.感觉示例代码非常好,但是本人发现了一个bug,与大家共享. 按照作者的示例程序,编译程序时总是在alloc.construct()函数处报错,不同IDE可能提示的错误原因不同,本人的是undefined reference to `Vector<std::string>::alloc'. 仔细想想,应该与类Vector中alloc成员的静态属性有关,因此有两种修正方式: 1)删去stat

C++primer第七章 函数

本章将介绍函数的定义和声明.然后具体分析三类特殊的函数:内联(inline)函数.类成员函数和重载函数. 7.1. 函数的定义 函数由函数名以及一组操作数类型唯一地表示.函数的操作数,也即形参,在一对圆括号中声明,形参与形参之间以逗号分隔.函数执行的运算在一个称为函数体的块语句中定义.每一个函数都有一个相关联的返回类型. 函数的调用 C++ 语言使用调用操作符(即一对圆括号)实现函数的调用.正如其他操作符一样,调用操作符需要操作数并产生一个结果.调用操作符的操作数是函数名和一组(有可能是空的)由

C++primer 第七章 类(有关类的相关定义)

 类的基本思想:数据抽象和封装.数据抽象是一种依赖于接口和实现分离的编程技术.类的接口包括用户所能执行的操作:类的实现则包括类的数据成员.负责接口实现的函数体以及所需的各种私有函数.封装实现了类的接口和实现的分离(用自己的话讲,就是封装把类的实现隐藏了,别人已将功能的实现帮你完成了,你只需要直接调用).       1.定义抽象数据类型:        类作用域:类本身就是一个作用域.       编译器分两步处理类:首先编译成员的声明:然后才是成员函数体.       A.定义read和pri

【C++ Primer 第7章】定义抽象数据类型

参考资料 1. C++Primer #7 类 虚表是属于类的,而不是属于某个具体的对象,一个类只需要一个虚表即可.同一个类的所有对象都使用同一个虚表. 为了指定对象的虚表,对象内部包含一个虚表的指针,来指向自己所使用的虚表.为了让每个包含虚表的类的对象都拥有一个虚表指针,编译器在类中添加了一个指针,*__vptr,用来指向虚表.这样,当类的对象在创建时便拥有了这个指针,且这个指针的值会自动被设置为指向类的虚表. 原文地址:https://www.cnblogs.com/sunbines/p/92

解决《C++ Primer》第一章书店程序问题

第一章1.6节有一个书店程序问题,按照书上的代码,编译器就会报错,显示 aa.cpp:13:32: error: no match for call to '(std::__cxx11::string {aka std::__cxx11::basic_string<char>}) ()' if(item1.isbn()==item2.isbn()) ^ aa.cpp:13:46: error: no match for call to '(std::__cxx11::string {aka s