C++基础语法

编译型语言

编程语言可以分为四个层次,从上到下,语言会更接近人类使用语言的方式,但相对应的程序运行效率逐渐降低

  1. 机器语言、汇编语言:这些语言执行效率很高,但移植性很差;
  2. 编译型语言:C/C++。这种类型的语言更接近人类的使用方式,在不同的机器上也可以跨平台使用。但跨平台有一些难度;
  3. 解释型语言:Basic、Python。这种类型的语言通过解释器作为中间层,跨平台性很强;
  4. 脚本语言: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
2
3
4
5
6
7
8
9
10
//常见的数据类型的定义
char a[10] = "a";
short int s = 97;
int m = 97;
long int n = 97;
float f = 97.0f;
double d = 97.0;
long double k = 97.0;
bool b = true;
wchar_t w[10] = L"a";

标识符和关键字

C++中的标识符是用来标识变量、函数、类、模块,或者任何其他用户自定义项目的名字;

  • 一个标识符通常以字母A~Z或a ~z或下划线_开始,后面跟零个或者多个字母、下划线和数字;
  • 一个标识符不允许使用数字开头;
  • 一个标识符内不允许出现标点字符,如@、&等等;
  • 不能混淆大小写,C++是区分大小写的编程语言;
  • 不能使用C++关键字作为标识符,原则上不允许长度超过32位;

标识符命名规则:

  • 不要试图发明最好的命名规则,要制定一个让大部分人都满意的命名并在项目组中贯彻执行;
  • 标识符应该直观,可以望文知意,尽量使用英文单词组合,不要使用拼音;
  • 标识符长度要符合“min-length&max-information”原则,长度尽可能短,信息尽可能多
  • 变量名字尽可能使用“名词”或“形容词+名词”形式,尽量避免出现数字;函数名尽量使用“动词+名词”
  • 可借鉴的命名规则:
    • 匈牙利命名法:开头字母用变量类型缩写,其余部分用变量的英文或者英文缩写,要求第一个字母大写,如int iMyAge;
    • Camel(驼峰)命名法:第一个单词首字母小写,后面单词首字母大写,如int myAge;
    • Pascal命名法:每个单词的第一个字母都大写,如int MyAge;

关键字

C++的关键字

变量与常量

变量

  • 变量就是在程序运行过程中,值可以改变的量;
  • 变量在程序的执行中可以进行赋值造作,发生变化;
  • 变量有一个名字,并在使用之前要说明其类型,一经说明,就在内存中占据与其类型相应的存储单元;

变量定义:

  • 首先是类型说明符,随后紧跟一个或者多个变量名组成的列表,其中变量名以逗号分隔,最后以分号结束:int m = 1,n = 1;
  • 当变量在创建时获得了一个特定的值,我们说这个变量被初始化了。用于初始化变量的值可以是任意复杂的表达式;
  • 当一次定义了一个或多个变量时,变量的名字随着定义就可以使用了,如:int m=1,n=1; int sum = m + n;

常量

  • 在程序运行过程中,其值一直保持不变的量为常量;
  • 常量也区分不同的数据类型;

常量在C++中有两种定义的方法:

  1. 使用#define,如:#define PI 3.14
  2. 使用const,如:const double PI = 3.14

尽量使用const形式定义变量,因为#define不会出现在编译时期,在编译出错时不容易排错。

整数常量

整数常量可以是十进制、八进制或者十六进制的常量:

  • 前缀指定基数:0x或者0X表示十六进制,0表示八进制,不带前缀则默认十进制;
  • 整数常量也可以带一个后缀,后缀是U和L的组合,U表示无符号整数,L表示长整数。后缀可以是大写也可以小写,不区分顺序。

布尔常量

布尔常量共有两个,他们都是C++关键字,true代表真,false代表假。

字符常量

  • 字符常量是括在单引号中的。如果常量以L开头,则表示宽字符常量。如果是宽字符常量则必须保存在wchar_t类型的变量中;
  • 字符常量可以是一个普通字符(‘x’)、一个转义序列(’)、或者一个通用字符(’2C0’)。
  • 需要表达一些符号的时候需要用到转义字符