C++基本概念

简介

1.语言的发展:二进制值类==>汇编语言==>中高级语言(C,C++,Java)

2.C++说明:C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程,C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点,C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序;

3.C++发展时间:

  • 1998:C++98,第一个C++标准;
  • 2003:C++03,第二个C++标准;
  • 2011:C++11,第三个C++标准;
  • 2014:C++14,第四个C++标准;
  • 2017:C++17,第五个C++标准;

环境的建立

1.C++编译器:

  • GCC编译器:
  • Visual Studio IDEA:

C++基本语法

1.编译&执行:

  • 打开一个文本编辑器,添加上述代码;
  • 保存文件为 hello.cpp;
  • 打开命令提示符,进入到保存文件所在的目录;
  • 键入 ‘g++ hello.cpp ‘,输入回车,编译代码。如果代码中没有错误,命令提示符会跳到下一行,并生成 a.out 可执行文件;
  • 现在,键入 ‘ a.out’ 来运行程序;
  • 您可以看到屏幕上显示 ‘ Hello World ‘;

2.C++ 标识符:C++ 标识符是用来标识变量、函数、类、模块,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9),C++ 标识符内不允许出现标点字符,比如 @、& 和 %。C++ 是区分大小写的编程语言。因此,在 C++ 中,Manpower 和 manpower 是两个不同的标识符;

3.C++关键字:

C++ 的关键字(保留字)完整介绍 | 菜鸟教程 (runoob.com)

4.C++注释:和C#一致;

变量和常量

变量类型

类型 关键字 初始化默认值 范围
字符型 char ‘\0’ 1 个字节 -128 到 127 或者 0 到 255
无符号字符型 unsigned char 0 1 个字节 0 到 255
有符号字符型 signed char 0 1 个字节 -128 到 127
整形 int 0 4 个字节 -2147483648 到 2147483647
无符号整形 unsigned int 0 4 个字节 0 到 4294967295
有符号整形 signed int 0 4 个字节 -2147483648 到 2147483647
短整形 short int 0 2 个字节 -32768 到 32767
无符号短整形 unsigned short int 0 2 个字节 0 到 65,535
有符号短整形 signed short int 0 2 个字节 -32768 到 32767
长整形 long int 0 8 个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
无符号长整形 signed long int 0 8 个字节 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
有符号长整形 unsigned long int 0 8 个字节 0 到 18,446,744,073,709,551,615
单精度浮点型 float 0 4 个字节 精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)
双精度浮点型 double 0 8 个字节 双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)
双精度长浮点型 long double 0 16 个字节 长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。
宽字符型 wchar_t ‘\0’ 2 或 4 个字节 1 个宽字符(等价==>typedef short int wchar_t)
无类型 void - - 表示类型的缺失

变量作用域

1.作用域说明:主要是三个地方可以定义变量

  • 局部变量:在函数或一个代码块内部声明的变量;
  • 全局变量:在所有函数外部声明的变量;
  • 形式参数:在函数参数的定义中声明的变量,而调用方则被称为实际参数;

常量

1.C++声明常量:常量最好全大写

  • #define 预处理器:语法格式#define 预处理名 常量值;
  • const 关键字:语法格式const 数据类型 变量名 = 常量值;

修饰符类型

1.修饰符:修饰符 signed、unsigned、long 和 short 可应用于整型,signed 和 unsigned 可应用于字符型,long 可应用于双精度型;修饰符 signed 和 unsigned 也可以作为 long 或 short 修饰符的前缀(例如:unsigned long int,其中int可以省略);

  • signed:有符号类型;
  • unsigned:无符号类型;
  • long:长类型;
  • short:短类型;

2.类型限定符:类型限定符提供了变量的额外信息:

  • const:const 类型的对象在程序执行期间不能被修改改变;
  • volatile:修饰符 volatile 告诉编译器不需要优化volatile声明的变量,让程序可以直接从内存中读取变量。对于一般的变量编译器会对变量进行优化,将内存中的变量值放在寄存器中以加快读写效率;
  • restrict:由 restrict 修饰的指针是唯一一种访问它所指向的对象的方式。只有 C99 增加了新的类型限定符 restrict;

存储类(型)

1.存储类说明:存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期,这些说明符放置在它们所修饰的类型之前,下面列出 C++ 程序中可用的存储类(从 C++ 17 开始,auto 关键字不再是 C++ 存储类说明符,且 register 关键字被弃用)

  • auto(C++17删除):根据初始化表达式自动推断被声明的变量的类型,用于两种情况,声明变量时根据初始化表达式自动推断该变量的类型、声明函数时函数返回值的占位符;
  • register:用于定义存储在寄存器中而不是 RAM 中的局部变量,这意味着变量的最大尺寸等于寄存器的大小,且不能对它应用一元的 ‘&’ 运算符(因为它没有内存位置);
  • static:
  • extern:
  • mutable:
  • thread_local (C++11):

运算符

分支语句

循环语句