C++基础语法
编程语言的层次和类型
● 机器语言、汇编语言 等
● 编译型语言 C++ C 等
● 解释型语言 Basic Python 等
● 脚本语言 bash shell 等
以上从上到下使用层次更接近人类使用,但是运行效率逐渐降低。(java是介于编译和解释型之间)
编译型语言一般需要编译和链接的过程,才能变成真正的可执行的程序。
源代码 - 预处理 - 编译 - 汇编 - 链接 - 可执行文件
语言的数据类型
一个简单的例子:
int sum; // 定义整型变量 int m = 1; // 定义整型变量 int n = 1; // 定义整型变量 sum = m + n;
数据类型的内部结构:
● C++中的每个变量都有其数据类型,数据类型决定这变量所占用的内存空间大小和布局方式、该空间能存储的值的范围以及变量能参与运算。
C++中的常见的数据类型:
名称 | 字节数 | 描述 | 范围 |
char | 1 | 字符()或者整数,8位长 | 有符号-128-127无符号 0-255 |
short | 2 | 短整数 16位长 | 有符号-32768-32767无符号0-65535 |
long | 4 | 长整数 32位长 | 有符号-2147483648-2147483641无符号0-4294967295 |
int | 4 | 整数 | 有符号-2147483648-2147483641无符号0-4294967295 |
float | 4 | 浮点数 | |
double | 8 | 双精度浮点数 | |
long double | 8 | 长双精度浮点数 | |
bool | 1 | 布尔值 | TRUE或FALSE |
wchar_t | 2 | 宽字符 | 一个宽字符 |
常见数据类型的定义:
void main(void) { 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位
常见关键字:
asm | else | new | this |
auto | enum | operator | throw |
bool | explicit | private | true |
break | export | protected | try |
case | extern | public | typedef |
catch | false | register | typename |
char | float | reinterprent_cast | typeid |
class | for | return | union |
const | friend | short | unsigned |
const_cast | goto | signed | using |
continue | if | sizeof | virtual |
default | inline | static | void |
delete | int | static_cast | volatile |
do | long | struct | wchar_t |
double | mutable | switch | while |
dynamic_cast | namespace | template |
可以在 C++ keywords - cppreference.com内查看最新的关键字。
变量与常量
变量
● 变量:在程序运行中,其值可以改变的量称为变量;
● 变量在程序的执行中能够赋值,发生变化;
● 变量有一个名字,并在使用之前要说明其类型,一经说明,就在内存中占据与其类型相应的存储单元
变量的定义
● 变量定义的基本形式 :首先是类型说明符,紧跟一个或者多个变量名称组成的列表,其中变量名以逗号分割,最后用分号结束。 int m = 1, n = 1;
● 当变量在创建时候获得了一个特定的值,我们就说这个变量被初始化了。用于初始化变量的值可以是任意复杂的表达式。
● 当一次定义了多个变量时,变量名字随着定义就可以使用了。int m =1, n=1; int sum = m+n;
常量
● 常量:在程序运行过程中其值一直保持不变的量称为常量
● 常量也区分不同的类型 2 1024 是整形 2.0f是浮点型 等
常量的定义
● C++中使用两种简单的方式定义常量的方法:
○ 使用#define :如 #define PI 3.1415926
○ 使用const : 如 const double PI = 3.1415926
有人数能用const就不要用define 。我觉得是扯淡,这个还是看实际使用场景,但是确实需要避免define错误。
整形常量
● 整数常量可以是十进制、八进制或者十六进制
● 前缀指定基数:0X表述十六进制 、0表示8进制 、不带前缀表示十进制
● 整数常量也可以带一个后缀,后缀是U和L的组合,U表示无符号整数, L表示长整型,后缀可以是大写也可以是小写。
布尔常量
布尔常量共有两个 true false
字符常量
● 字符常量是在单引号中,如果以L(仅大写)开头,则表示宽字符 (L’x’),此时它必须存储在wchar_t类型的变量中,凑则它就是一个窄字符常量,可以存在char中;
● 字符常量可以是一个普通的字符(‘x’)、一个专一字符(‘\t’)或者一个普通字符(‘\u02C0’)
转义字符 | 意义 | ASCLL码值(十进制) |
\a | 响铃(BEL) | 007 |
\b | 退格(BS) ,将当前位置移到前一列 | 008 |
\f | 换页(FF),将当前位置移到下页开头 | 012 |
\n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
\r | 回车(CR) ,将当前位置移到本行开头 | 013 |
\t | 水平制表(HT) (跳到下一个TAB位置) | 009 |
\v | 垂直制表(VT) | 011 |
’ | 代表一个单引号 | 039 |
" | 代表一个双引号字符 | 034 |
\ | 代表一个反斜线字符’‘’ | 092 |
? | 代表一个问号 | 063 |
\0 | 空字符(NUL) | 000 |
\ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 |
\xhh | 十六进制所代表的任意字符 | 十六进制 |