编译型语言
编程语言可以分为四个层次,从上到下,语言会更接近人类使用语言的方式,但相对应的程序运行效率逐渐降低
- 机器语言、汇编语言:这些语言执行效率很高,但移植性很差;
- 编译型语言:C/C++。这种类型的语言更接近人类的使用方式,在不同的机器上也可以跨平台使用。但跨平台有一些难度;
- 解释型语言:Basic、Python。这种类型的语言通过解释器作为中间层,跨平台性很强;
- 脚本语言:bash、csh。不同的平台拥有不同的脚本,本身的功能并不强大,但是很容易把各种语言融合在一起。
C++属于编译型语言,需要经历编译和链接的过程,才能变成真正的可执行程序: 源程序➡编译器➡目标程序➡链接器➡可执行程序
数据类型
C++中的每个变量都有其数据类型,数据类型决定这个变量所占用内存空间的大小和布局方式、该空间能存储的值的范围,以及变量能参与的运算。 在计算机中,1byte=8bit。我们在说数据类型的大小的时候一般以byte作为单位来计算。
名称 | 字节数 | 描述 | 范围 |
---|---|---|---|
char | 1 | 存储字符或者整数,8位(bit) | 有符号:-128~127;无符号:0 ~ 255 |
short | 2 | 短整数,16位 | 有符号:-32768~32767;无符号0 ~65535 |
long | 4 | 长整数,32位 | 有符号:-2147483648~2147483647;无符号0 ~4294967295 |
int | 4 | 整数 | 同上 |
float | 4 | 浮点数 | |
double | 8 | 双精度浮点数 | |
long double | 8 | 长双精度浮点数 | |
bool | 1 | 布尔值,只能是真值或假值 | true或false |
wchar_t | 2 | 宽字符,这是为存储两字节长的国际字符而设计的类型 |
1 | //常见的数据类型的定义 |
标识符和关键字
C++中的标识符是用来标识变量、函数、类、模块,或者任何其他用户自定义项目的名字;
- 一个标识符通常以字母A~Z或a ~z或下划线_开始,后面跟零个或者多个字母、下划线和数字;
- 一个标识符不允许使用数字开头;
- 一个标识符内不允许出现标点字符,如@、&等等;
- 不能混淆大小写,C++是区分大小写的编程语言;
- 不能使用C++关键字作为标识符,原则上不允许长度超过32位;
标识符命名规则:
- 不要试图发明最好的命名规则,要制定一个让大部分人都满意的命名并在项目组中贯彻执行;
- 标识符应该直观,可以望文知意,尽量使用英文单词组合,不要使用拼音;
- 标识符长度要符合“min-length&max-information”原则,长度尽可能短,信息尽可能多
- 变量名字尽可能使用“名词”或“形容词+名词”形式,尽量避免出现数字;函数名尽量使用“动词+名词”
- 可借鉴的命名规则:
- 匈牙利命名法:开头字母用变量类型缩写,其余部分用变量的英文或者英文缩写,要求第一个字母大写,如int iMyAge;
- Camel(驼峰)命名法:第一个单词首字母小写,后面单词首字母大写,如int myAge;
- Pascal命名法:每个单词的第一个字母都大写,如int MyAge;
关键字
变量与常量
变量
- 变量就是在程序运行过程中,值可以改变的量;
- 变量在程序的执行中可以进行赋值造作,发生变化;
- 变量有一个名字,并在使用之前要说明其类型,一经说明,就在内存中占据与其类型相应的存储单元;
变量定义:
- 首先是类型说明符,随后紧跟一个或者多个变量名组成的列表,其中变量名以逗号分隔,最后以分号结束:int m = 1,n = 1;
- 当变量在创建时获得了一个特定的值,我们说这个变量被初始化了。用于初始化变量的值可以是任意复杂的表达式;
- 当一次定义了一个或多个变量时,变量的名字随着定义就可以使用了,如:int m=1,n=1; int sum = m + n;
常量
- 在程序运行过程中,其值一直保持不变的量为常量;
- 常量也区分不同的数据类型;
常量在C++中有两种定义的方法:
- 使用#define,如:#define PI 3.14
- 使用const,如:const double PI = 3.14
尽量使用const形式定义变量,因为#define不会出现在编译时期,在编译出错时不容易排错。
整数常量
整数常量可以是十进制、八进制或者十六进制的常量:
- 前缀指定基数:0x或者0X表示十六进制,0表示八进制,不带前缀则默认十进制;
- 整数常量也可以带一个后缀,后缀是U和L的组合,U表示无符号整数,L表示长整数。后缀可以是大写也可以小写,不区分顺序。
布尔常量
布尔常量共有两个,他们都是C++关键字,true代表真,false代表假。
字符常量
- 字符常量是括在单引号中的。如果常量以L开头,则表示宽字符常量。如果是宽字符常量则必须保存在wchar_t类型的变量中;
- 字符常量可以是一个普通字符(‘x’)、一个转义序列(’)、或者一个通用字符(’2C0’)。
- 需要表达一些符号的时候需要用到转义字符