#
开头的代码编译预处理 :编写完源程序,在执行编译之前,编译器 会首先调用预处理器,找到所有以#
开头的代码行进行处理。
include
意思是找到后面跟随的文件,并且加载文件内容到程序中预处理器的典型操作包含在源代码被编译前,进行内容的替换和添加
系统头文件iostream
包含了使用程序进行输入输出的工具
例如:可以使用cout
进行消息显示
namespace
Tips: 这就好像这样一种情况,当一个班上有两个名叫张爽的学生时,为了明确区分他们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。
- 关于输入输出的组件都被存放在标准命名空间
std
中
- 如
iostream
中用于输出的cout
实际名称为std::cout
,用于换行的endl
实际名称为std::endl
- 使用
using
声明之后,程序员可以直接使用命名空间中定义的名称,不需要额外指定前缀
main
main()
开始。main()
函数,程序在运行时会自动调用main()
函数。
- 主函数是用来实现一个或多个功能的代码块
int main()
中的int
指定了函数的返回类型- 以左大括号
"{"
开始,右大括号"}"
结束- 在大括号
"{}"
之间的部分称为程序主体
return
语句代表了函数将会返回的内容
- 当主函数返回一个
0
时,说明程序正常运行结束- 返回其他非
0
的数值会造成系统认为程序异常退出
cout
打印内容cout
将""
中间的内容输出打印在屏幕上,并且进行换行。cout<<"输出内容"<
- 每一个分号
";"
表示一个语句的结束
- 函数体的每一句代码后面都需要
";"
存在
- 输出借助
cout
,可以通过插入操作符"<<"
赋予输出内容
- 上示例代码中的输出内容为
Hello, World!
- 换行符
endl
可以使内容输出之后,光标回准到下一行第一个字符,即换行
注释用来标记语句的作用或者解释复杂代码块的功能,可以提高程序的可读性,是程序员为读者作的说明。
在编译过程中,注释中的所有内容会被编译器自动忽略,最终也不会被执行。
在C++中,以双斜杠 "//"
用来注释内容,之后的内容直到行末都为注释。
注释可以单独位于一行上,即占一整行;也可以与代码出现在同一行中。
Tips:使用注释还可以在调试过程中让某一行代码失效,因此,可以通过注释某些代码,来检验程序的运行情况。
//导入系统输入输出头文件 iostream
#include
//使用标准命名空间 std
using namespace std;
int main() {
// TODO 将Hello, World!打印在屏幕上,并且进行换行
cout << "Hello, World!" << endl;
return 0;
}
变量指的是会随着程序运算而改变的量。
变量是专门用来存储数据的容器,会根据数据类型决定容量大小。
变量对应着内存中的一个地址,用于计算时数据的存储和读取 。
一般的声明方式为 数据类型 变量名称。
// 导入系统输入输出头文件 iostream
#include
// 使用标准命名空间 std
using namespace std;
int main() {
// TODO 声明可乐数量变量 coke
int coke;
// TODO 声明爆米花数量变量 popcorn
int popcorn;
// TODO 声明消费总额变量 money
int money;
return 0;
}
在C++中,变量名称也叫做标识符,表示⽤来标记和识别不同变量的不同的符号,有固定的构造规则:
只能由字⺟ 、数字和下划线组成;特别的;在C++中,标识符中的英文字母是区分大小写的;
sweet_popcorn
合法,但是zero&coke
使用了符号&
,因此不合法。数字不可以出现在第一个位置上;
coke330
合法,但是330coke
以数字作为开头,因此不合法。在C++中,标识符中的英文字母是区分大小写的;
coke330
和Coke330
表示的是完全不同的变量名称,即表示不同的标识符。C++的关键字(保留字)不可以⽤做标识符;
pout
合法,但是cout
是C++的关键字,不可以用作标识符,因此不合法 Tips: 无需背诵所有关键字常见的关键字有cout
、int
或include
等具有特殊含义的字符
完整的表格见参考资料。
变量的初始化 即赋予变量一个初始值。
变量在初始化时应该根据数据类型进行赋值,否则将会发生错误.
int a = 3.14 ;
是错误的。未进行初始化的变量具有不确定的数值,直接进行计算将会发生错误
sum
值,就进行相加计算。 sum = sum + 1;
是不能够被执行的输出即在屏幕上输出展示信息内容。
内存可以看作一个充满盒子的仓库,每个盒子可以储存计算时用到的数据,称为一个变量。
那么,计算机如何定义存放在变量中的数据呢?
变量名 = 字面量
。整数字面量是没有任何小数或指数部分的数字字面量,与数学中的整数直接关联。
十进制:直接写出的整数。
例如:0
,23
,-1024
八进制:以数字0
开头的整数,有效数字为0~7
,并且不带有正负号。
例如:0126
,0163
十六进制:以0x
或0X
开头的整数,有效数字为0~9
、A~F
(a~f
),并且不带有正负号。
例如:0x12a
,0xf39
浮点字面量是有分数形式或指数形式的数字字面量,与数学中的小数直接关联。
小数形式:由数字和小数点组成
例如:0.66
,30.0
,14.15926
指数形式:在数学中,一个可以用幂的形式来表示的形式。在C语言中,则以e
或E
后跟一个整数来表示以10
为底数的幂数。
e
或E
的左侧必须要有数字
e
或E
的右侧为幂次的数值,必须为整数6.6E-1
,30.0e0
,0.01415926E3
分为单字符字面量与转义符字面量。
单字符字面量:
通过将单个字符括在单引号内来创建字符字面量。
例如:'a'
,'m'
,'F'
,'2'
,'}'
等。
转义符字面量:
使用’'开头的转义字符序列来表示一个特殊字符。
Tips:有时,在C++编程中必须使用不能键入或具有特殊含义的字符。例如,换行符(回车),制表符,问号,引号等。为了使用这些字符,就会使用’'开头的转义字符序列用来表示一个特殊字符。
例如:
`'\n'`表示换行符;
`'\t'`表示制表符;
`'\''`表示单引号字符(不被解析成字符外的单引号);
`'\\'`表示真正的斜杠字符。
所有的字符字面量在计算机里都是有一个编码的,为了避免大家用不同的编码,造成混乱,美国的组织就出台了ASCII编码(American Standard Code for Information Interchange:美国信息交换标准代码),所有字符都采用ASCII编码,共有128个字符。每个字符都对应着一个0~127
之间的整数。
字符串字面量是由一对双引号括起来的字符序列
字符串中可以包含类似于字符字面量普通字符以及转义字符
字符串除了存储所包含的字符外,还额外包含一个结束标志'\0'
'\0'
:结束符; ASCII编码
对应数值为0
的字符
const
关键字来定义并且初始化:const int kCokePrice = 5;
const int kPopcornPrice = 10;
const
是⼀个修饰符,加在数据类型int
的前⾯,用来给这个变量加上一个不变的属性
int
调换位置,写成int const kCokePrice = 5;
最后,总结一下符号常量的初始化伪代码:
const 数据类型 常量名称 = 初始值;
或者
数据类型 const 常量名称 = 初始值;
int main() {
// 字面量
cout << 1 << " 是一个整型字面量" << endl;
cout << 0.5 << " 是一个浮点型字面量" << endl;
cout << 'a' << " 是一个字符型字面量" << endl;
cout << "这句话就是一个字符串型字面量\n" << endl;
// 定义符号常量表示可乐单价
const int kCokePrice = 5;
// 定义符号常量表示爆米花的单价
int const kPopcornPrice = 10;
// 将可乐与爆米花的单价分别打印在屏幕上,并且加上提示信息
cout << "CokePrice is: " << kCokePrice << endl;
cout << "PopcornPrice is: " << kPopcornPrice << endl;
return 0;
}