c++ primer plus学习笔记(1)——基础知识

 本人还有一星期要开始期末考试了,复习c++时顺便挖个坑,之后会详细更新。


目录

1 初识源代码

        1.1 c++程序的产生 

        1.2 代码例

1.3 标记、空白

2 简单数据类型

2.1 变量名

2.2 变量类型

2.3 变量大小、功能

2.4 使用变量

2.4.1 变量声明

2.4.2 变量赋值

2.5 限定符

2.6 字面量

3 简单输入输出

3.1抽取、插入运算符

3.2转义序列

4 简单宏

4.1 #include

4.2 #define


1 初识源代码

本节只做大致科普,熟悉的课跳过

1.1 c++程序的产生 

我们编写的是源代码,即cpp文件

1.2 代码例

 看以下代码:

#include <iostream>  
using namespace std; //编译指令
int main()           //主函数
{                    //块开始
    cout << "hello"; //输出语句
    return 0;
}                    //块结束
  • 第一行是宏(详见???),第二行是using编译指令(详见???),这两行使得第五行cout语句有效
  • // 后的内容是注释,即机器将忽略源代码中,// 后同一行的内容
  • ; 代表语句结束
  • 第三行是main函数的开头,程序将从这里开始执行
  • 第四行和第七行是main函数的内容,被称为块,{ } 分别代表块开始和结束
  • 第五行是cout语句,将指定内容发送至屏幕
  • 第六行是return语句,执行这句话时将立即结束当前块,而不是逐句执行到块末

1.3 标记、空白

  • 标记:不可分割的一个整体,能被机器识别
  • 空白:空格、制表符、回车

 如前文中,int、main、cout就是标记,中间的空格就是空白。我们在编写代码时,应用空白将标记隔开,与代码标准风格统一,具体如下:

  • 每条语句占一行。
  • 括号应成对。
  • 语句应根据块(大括号)进行缩进。
  • 函数名和其括号间没有空白。


2 简单数据类型

将可修改的信息存储在计算机中,我们需要指明信息的存储位置和内存空间大小。这被高级程序语言抽象为“变量”。变量包括三个部分:变量名、变量类型、变量的值。

2.1 变量名

变量名遵守命名规则:

  • 在名称中只能使用字母、数字和下划线(_)。
  • 第一个字符不能是数字。
  • 区分大写字符与小写字符。
  • 不能将C++关键字用作名称。

 值得一提的是,以下划线开头的名称大多都被库中的变量使用。

2.2 变量类型

基本变量分为两种类型:整型、浮点型。整型变量存储整数;浮点型变量存储浮点数,即实数。同类型的不同变量使用不同的内存空间大小,以储存不同大小的数,或实现特殊的功能。具体如下:

  • 整型:char、short、int、long、long long、bool
  • 浮点型:float、double、long double

2.3 变量大小、功能

 不同位数的系统,变量大小可能不同。64位系统所占字节数如下表:

变量类型变量大小功能说明

char

1根据ASCII码表,将存储的值映射成字符
short2
int4存储一定范围的整数
long4
long long8
bool1只有一位,即只有0和1两个值
float4存储一定范围的浮点数
double8存储一定范围的浮点数
long double16

2.4 使用变量

2.4.1 变量声明

c++在使用变量之前,需要先对变量进行声明(数学中的“设……”),格式如下:

 type name;

int a;    //定义int型变量a
float b;  //定义float型变量b
char c;   //定义char型变量c

即先指出变量类型,然后写出变量名。

你也可以连续声明:

int a, b; //用,隔开

ps:这种声明是定义声明,也简称定义。另有引用声明,详见内存模型篇章。

2.4.2 变量赋值

使用 = 运算符,格式如下:

name = value;

a = 1;    //现在,a的值为1
b = 1.5;  //现在,b的值为1.5
c = 'A';  //现在,c的值为65,可映射为大写字母A

 也可直接在定义时赋值,俗称初始化

int a = 1;

2.5 限定符

在定义变量时使用限定符,将对变量产生对应的效果。

unsigned限定符:使整型变量只存储正整数。

const限定符:使变量被初始化后,值不可更改。

unsigned int a;
const float b = 1.5;
char const c = 'A';
  • 对于简单变量类型,const的位置不重要
  • 应在定义时,对const变量进行初始化(否则报错)

unsigned不再过多叙述,详见附录1.2.5

2.6 字面量

字面量,是出现在源代码中的量。人通过其与源代码进行交互。其中包括数字、前后缀、单引号(字符)、双引号(字符串),详见下表:

标记例意义
10、9、810进制数字
010、09、088进制数字,用前缀0标识
0x10、0x9、0X816进制数字,用前缀0x或0X标识
1.1、.22double类型的浮点数
1.1f、.22Ffloat类型的浮点数,用后缀f、F标识
1.1L、.22Llong double类型的浮点数,用后缀L标识
'a'、'b'、'\n'、'\0'单个字符,用单引号标识
L'a'、L'Z'单个宽字符,用前缀L标识
“hello”单个字符串,用双引号标识

ps:有关字符串的内容见数据类型篇章 

3 简单输入输出

我们提出的输入输出,是针对程序而言的。外界对程序输入, 程序对外界输出。你可以想象两个方块,左边的是外界,右边的是程序,便于后续理解。

3.1抽取、插入运算符

暂时不理会 >> 和 << 的名称,先看下述代码:

int x;
cin >> x;    //将输入的值赋给x
cout << x;   //将x的值输出

cin表示标准输入流(键盘),cout表示标准输出流(屏幕),这样就实现了程序与外界的交互。你也可以连续使用:

int x, y;
cin >> x >> y;
cout << x << y;

在此不再过多深入,详细请见c++ primer plus学习笔记(3)——结构语句、简单输入输出

3.2转义序列

转义序列使得程序能输出特定的内容,具体如下:

转义序列符描述含义
\n换行符移到下一行
\t水平制表符移动到下一水平制表位,相当于tab
\v垂直制表符移动到下一垂直制表位
\b退格符移回一个空格
\r回车符光标返回至当前行的开始处,用于套印
\f换页符发出一个换页指令
\a警报发出一个警报
\\反斜线插入一个反斜线字符
\?问号插入一个问号字符
\0空字符插入一个空字符,它被定义为具有数值0
\"插入双引号插入一个“
\'插入单引号插入一个‘
cout << '\\' << '\n' << '\\';    //这将在两行个打印一个\
cout << "\\\n\\";                //或者连成字符串

4 简单宏

宏是一种指令,根据指定规则替换文本。常用的有以下宏

4.1 #include

意即包含,将指定头文件导入源代码,格式如下:

#include <…>

#include "…"

这两种格式的区别是:尖括号表明程序应直接从指定路径(c++库)寻找头文件,双引号则从当前路径寻找头文件。例如:

cout 的声明就在 iostream 中,iostream 是c++库的头文件,包含了这个头文件才能使用cout。

4.2 #define

意即“定义”,将指定的文本替换为指定的字面量,是用来解放程序员的。格式如下:

#define before after

before是更改前的文本,after是更改后的文本,例:

#define PI 3.14
……
cout << PI;

在后续代码中,我们便可以使用PI这个标记。在编译前,这将被替换成3.14

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岚花落_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值