C++ Primer Plus 学习笔记(一)

C++ Primer Plus 学习笔记(一),第1张

C++ Primer Plus 学习笔记(一)

目录

第二章. 开始学习C++

1. 主函数

2. 预处理器

3. endl

第三章. 处理数据

1. 简单变量

2. 整型

3. C++ 初始化

4.字符

5. bool

6. const限定符

7. 浮点数

8. 算数运算符

9. 类型转换

 第四章. 复合类型

1. 数组

 2. 字符串

3. string 类


第二章. 开始学习C++ 1. 主函数
int main() 等效于 int main(void)

即空括号等效于不接受参数。main函数相当于程序与系统的接口,可以看作返回值给 *** 作系统并不给程序,区分大小写大小写。

2. 预处理器

与 C 不同,C++ 风格的头文件没有拓展名,即没有 .h 后缀,如 iostream。

命名空间如:   

using namespace std;

使用using编译指令,可以更明确的指示所使用的变量或函数等属于哪。也可以只是用命名空间的某些元素,如:

using std :: cin
using std :: cout

来使用 cout,cin。 

3. endl

endl 在 在 iostream 头文件中定义,在std命名空间中,为控制符,作用与 'n' 类似,使光标换行。 

第三章. 处理数据 1. 简单变量

变量名第一个字符不能是数字,区分大小写,只能是数字、字符和下划线(_),不能将C++关键字作为变量名,不要创建以下划线开头的变量名,把它留给实现。

2. 整型

short (int) 至少16位;int 至少与 short 一样长;long (int) 至少32位; long long (int) 至少64位,至少与 long一样长。

3. C++ 初始化:
int wrens = 432;
int ham = { 24 };
int emus {7};

若大括号中没用东西,置零。这种形式只能用常量,不能用变量初始化。

int rocs = {}; // rocs = 0
int psy {}; // psy = 0;

整型字面值:即显示书写的常量,如200、173。C++ 使用前1-2位标识进制,第一位1-9表示十进制,0表示八进制,0x 或 0X 表示十六进制。

使用控制符可以使输出为想要的进制方式。

cout << dec; // 输出十进制
cout << hex; // 输出十六进制
cout << oct; // 输出八进制
4.字符

char 类型实际是整型,它是否有符号由 C++实现决定。字符型有扩展类型 wchar_t,具体位数由系统底层决定,用 wcin 和 wcout 处理扩展字符流。

wchar_t bob = L'p';
wcout << L"tall" << endl;

char16_t   char32_t   同理,前者长16位,后者长32位,都是无符号类型。前者用前缀 u 表示,后者用 U 表示。

char16_t ch1 = u'q';
char32_t ch2 = U'U0000222B'; // U表示通用字符名,u后接8位16进制,
                              // U后接8位16进制,表示其他的字符名,如日耳曼元 
                              // 音等。

上述代码输出都是 int 值,不知道为啥,编译器转成无符号数了?

5. bool

true 和 false 可以转换成 int 类型,true 是 1, false 是0。

6. const限定符

类似#define,创建一个字符常量。要初始化,无法声明后再赋值。

7. 浮点数

float 至少32位,double 至少48位,且不少于 float,long double 不少于 double。有效位由低到高。浮点常量默认 double。

8. 算数运算符

求模时一正一负, 符号满足:(a / b) * b + a % b = a。

9. 类型转换

0 转换成 bool 为 false, 非0为 true。强制类型转换:

(long) thorn  // 转成long
long (thorn)  // 转成long

计算机最自然的类型是 int 和 double,如两个 short 相加,计算机会先转成 int 结果再转成 short。

auto 关键字声明变量类型时:

auto m = 10; // m type int
auto n = 1.2 // n type double
auto x = 1.3e12L // x type long double
 第四章. 复合类型 1. 数组

数组声明时,元素数可以是常量表达式,如:8 * sizeof(int),不能是变量。sizeof(数组名)是数组所有元素的字节数。数组初始化可以省略 “=“:

int count[4] { 12, 16, 11}; // 元素分别为12, 16, 11, 0
 2. 字符串

字符串结尾必须有 ‘’ ,‘s’ 和 “s” 不同,前者字符,后者字符串,有 ‘’。cout 允许字符串拼接:

cout << " I'd give my" " right arm.n";
// 等价于
cout << " I'd give my right arm.n";

拼接时第一个字符串的 ‘’ 被 ‘r’ 替换。

字符串输入时,cin 遇到 ‘ ’停止,遇到换行符不读取,留在输入队列。用cin.getline(数组名, 字符个数),读入一行字符,包括 ‘ ’,“字符个数“包括空字符,实际是要-1的,该函数会读取换行符并转成空字符。cin.get(数组名,字符个数)与 cin.getline()类似,也可以输入一个字符(cin,get(ch)),不过不读取换行符,即越不过换行符,需要再加 cin.get() 或 直接 cin.get(数组名,字符个数).get(),跨过换行符。

3. string 类

使用string类要添加头文件string,她它在std空间中,要using或者std :: string使用。string类变量,自动处理处理字符串大小,同数组类似,可以用下标访问元素。初始化与字符串数组一样,未初始化的string类长度为0。

string str1 = "I "; //初始化
string str2 {"love "};  // 初始化
cout << str2[0] << endl;  //输出'l'
string str3;
str3 = str1 + str2; //拼接
str1 += str2;  // 拼接
4. 结构

与C不同,声明结构的变量时省略关键字 struct,定义结构是,内部元素之间用 ’ ,’分隔开。结构初始化:

struct dec  // 定义结构,元素间用分号
{
    char name[20];
    float vol;
    double price;
};
int main(void)
{
    dec duck1 = {"Daq", 0.12, 9.98}; // 初始化结构,元素间用逗号
    dec duck2 {"CDA", 0.14, .598};  // 另一种初始化方式
    dec duck3 {}  // duck3个元素置0
}

同类结构可以用 ”=“ 赋值。可以定义没名字的结构。

下周学习计划:复习完第四章后面的共用体(联合?)、枚举、+

指针,学习new、模板类vector、array,复习第5章循环、第六章分支,争取看完第七章函数。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4994443.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存