C++基础(第一、第二、第三章)

C++基础(第一、第二、第三章)

C++基础(第一、第二、第三章)

C++基础(第一、第二、第三章)

C++基础(第一、第二、第三章)

C++基础(第一、第二、第三章)

 

C++基础(第一、第二、第三章)

 

2019/12/19

1 装上VS2013 或者2015;

2 阅读第一章1-10页;

3 了解C++的历史

4 对比C/C++的区别和联系

5 把今天看的只是总结一遍,做好记录

2019/12/20

1 学会使用C++主函数

2 学会C++中特殊的注释,头文件使用(会建立多文件结构),了解命名空间的含义

3 学会使用cout,cin这两种输出输入的语法,及其输出时的格式控制

4 了解类的概念

5 学会使用函数,详细了解函数名,形式参数,返回值,函数体的含义。

1 机器语言->汇编语言->高级语言

2 为什么不实用机器语言?

可读性差,编程繁琐、困难

3 为什么不实用汇编语言作为编程语言?

汇编语言只是用特定的机器,当换机器时,需要重新编程,因此不是用汇编语言

4 高级语言的执行过程

(1)基于高级语言完成程序编写

(2)计算机等基于自己的编译器,完成将高级语言翻译为汇编语言(适用于本机器的汇编语言)

(3)汇编语言翻译为机器语言,完成对计算机的控制

5 什么是泛型编程,举个通俗易懂的例子

答:泛型编程与面向对象编程的目标相同,即使重用代码和抽象通用概念的技术更加简单。但是面向对象编程强调编程的数据方面,泛型编程强调的是独立于特定数据类型。侧重点不同。下面举一个泛型编程的实例:   

对不同数据类型进行排序,通常我们需要为每种类型创建排序函数,泛型编程需要对语言进行扩展,以便只编写一个泛型函数(既不是特定类型的函数),并应用于各种实际类型。

6 什么是可移植性

答:可移植性一般分为两种:软件可移植性,硬件可移植性。 软件可移植性是指代码可以在不同平台间移植,硬件移植性是指在不同硬件间(如不同构架的CPU)移植。

代码可移植性相关:

1、用标准库和基于标准库的第三方库;

2、用符合标准的编译器;

3、使用标准的C、C++语法;

4、使用条件编译处理操作系统层面上的差异

7 已经有C语言了为什么还要引入C++

答:C++是面向对象,面向对象就是进行一系列的封装,比如说认识一个对象,这个对象包括一些行为和属性,我把他们封装在一起。而C语言是面向过程,就是什么事情都是一步一步逐步执行。

 

2019/12/21

对应书上第三章37-68页(我指的是目录上的页数)

1 掌握C++变量的命名规则

C++基础(第一、第二、第三章)

2 了解不同变量类型的表示范围,掌握机器位数与整形变量表示范围大小的关系

3 学会输出不同变量的极限值

一:数值类型

(1)short、int 和 long 类型都表示整型值。存储空间的大小不同。一般, short 类型为半个机器字长,int 类型为一个机器字长,而 long 类型为一个或两个机器字长(在 32 位机器中 int 类型和 long 类型通常字长是同样的)。

(2)常用常量的定义以及表示范围:

类型

字节

范围

备注

Int

4

2^(-31) ~ 2^31-1

 

Unsigned int

4

2^32-1

 

unsigned long

4

2^32-1

 

Long

4

2^(-31) ~ 2^31-1

 

Long long

8

2^(-63)~2^63-1

 

Char

1

 

 

Double

8

-1.7*10(-308)~1.7*10(308)

15位有效数字

float

4

-3.4*10(-38)~3.4*10(38)

6位有效数字

4 掌握什么是字面值

答:字面值可以理解为常量。如42,即为字面值常量。

/* 枚举常量 */ 

    enum Month_t 

    { 

        JAN = 1, FEB, MAR, APR, MAY, JUN, 

        JUL, AUG, SEP, OCT, NOV, DEC 

    };

5 掌握常量的相关知识

6 学会使用常用的运算符,并了解其优先级

7 了解自动转换的机制

 

 

 

 

 

问题6:

C++基础(第一、第二、第三章)

举例:

C++基础(第一、第二、第三章)

C++基础(第一、第二、第三章)

C++基础(第一、第二、第三章)

 

 

 

 

2019/12/22

1 学会数组的创建和使用

2 学会C风格的字符串和C++风格的字符串(string重点)使用

答:1、 C-风格的字符串具有一种特殊的性质:以空字符结尾,空字符被写作“\0”,其ASCII码为0.用来标记字符串的结尾。Tips:

C++基础(第一、第二、第三章)

2、string类位于名称空间std中,使用时必须加头文件string。1)、可以提供using编译指令,2)、使用std::string来引用它。

3、string对象和字符数组之间的主要区别是,可以将string对象声明为简单变量,而不是数组。

3 理解结构体的含义,学会结构体的创建和使用,了解结构体与公用体的区别和联系。掌握枚举类型的建立和使用

答:1、结构是一种比数组更加灵活的数据格式,因为同一个结构可以存储多种类型的数据。

2:结构体的局部声明和外部声明:

C++基础(第一、第二、第三章)

3、共用体:

C++基础(第一、第二、第三章)

4、枚举:

enum spectrum{red, orange, yellow ,green, blue, violet, indigo, ultraviolet};

这些“符号常量”对应的值分别是0~7,这些常量叫枚举量。

    具体查看目录114页。

4 指针是重点,要熟练应用

C++基础(第一、第二、第三章)

C++基础(第一、第二、第三章)

5 学会熟练应用动态存储,并了解动态存储内存分配准则,以及存储位置

有两种动态存储分配方式:栈式(stack)、堆式(heap)。

6 熟练应用动态数组的创建和使用,分析其与vector变量的区别

答:使用new来创建动态数组:

int *psome = new int [10];

delete [ ]psome;

C++基础(第一、第二、第三章)

2、使用new创建动态结构:

C++基础(第一、第二、第三章)

 

3、模板类Vector类似于string类,也是一种动态数组。

数组是底层数据类型,存放在栈中,其内存的分配和释放完全由系统自动完成,效率最高;

动态数组是程序员由new运算符创建的,存放在堆中,需由delete运算符人工释放,否则会内存泄露;

vector,存放在堆中,由STL库中程序负责内存的分配和释放,使用方便。

7 了解动态、静态和自动存储的含义

接上一章:

1.自动存储

在函数内部定义的常规变量使用自动存储空间,被称为自动变量(automatic variable),这意味着它们在所属的函数被调用时自动产生,在该函数结束时消亡

2.静态存储

静态存储是整个程序执行期间都存在的存储方式。是变量称为静态的方式有两种:一种是在函数外面定义它;另一种是在声明变量时使用关键字statis。

3.动态存储

new和delete运算符提供了一种比自动变量和静态变量更灵活的方法。它们管理了一个内存池,这在C++中被称为*存储空间(free store)或堆(heap)。

8变量的声明和定义的区别

答:为变量分配地址和存储空间的称为定义,不分配地址的称为声明。

一个变量可以在多个地方声明,但是只能在一个地方定义。

加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。

说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。