C++入门
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):