本篇目录
一、环境搭建
1.1 Windows环境
- VS code 安装
- 下载vscode:进入下载界面
- 安装插件:C++和Chinese language pack 两个扩展包
- 保存cpp后缀文件:新建文件,测试
- Visual Stadio 2019安装
- 下载vs2019:进入下载界面
- 新建项目:控制台应用
- 调试:F5
1.2 Linux环境(CentOS 8)
-
制作Make文件:略
-
生成可执行文件
- 方法一:
- 直接生成默认可执行文件a.out:
g++ hello.cpp
- 直接生成默认可执行文件a.out:
- 方法二:
- 生成目标文件(中间文件)hello.o:
g++ -c hello.cpp
- 生成可执行文件hello.exe :
g++ hello.cpp -o hello.exe
- 生成目标文件(中间文件)hello.o:
- 方法一:
-
运行文件(要有x权限):
./hello.exe
二、数据类型初识
- 编译:就是把高级语言变成计算机可以识别的二进制语言
- 分离式编译机制:C++语言支持将程序分割为多个文件,每个文件独立编译,最后用链接器链接成一个整体程序
- 声明
- 声明方式
- 引用式声明:简称”声明“,还未分配内存空间,不进行初始化,因为其为引用了已定义的变量的声明的写法,写法:
extern int n;
- 定义式声明:简称”定义“,分配内存空间,进行初始化,写法:
int n;
- 引用式声明:简称”声明“,还未分配内存空间,不进行初始化,因为其为引用了已定义的变量的声明的写法,写法:
- 特点:在每个文件中,变量都必须先定义再使用,变量可以声明多次,但只可定义一次
- 功能:明确变量名字和类型,编译时通过其进行内存分配、变量初始值设置
- 声明方式
- 初始化:赋初值,显式
int n = 3 ;
,extern int n = 3;
(这也是定义),隐式static int n;
- 赋值:给变量赋值,仅针对定义过的变量,写法
n = 3;
2.1 整型—int
- 整形赋值
// 方法1: // 定义 int c_int; // 赋值 c_int = 100; // 方法2: // 声明、定义、赋值同时 int c_int = 100;
2.2 字符串—string
- 字符串赋值
#include <string> // 定义、初始化 string c_str = "/root/bin/";
2.3 浮点型—double
- 浮点型赋值
// 定义、初始化 double c_double = 3.1415926;
2.4 布尔型—bool
- 布尔型赋值
// 定义、初始化 // 非0为true,0为false bool is_ready = true;
三、输入输出及运算符
3.1 常规输入输出
- 键盘输入
// 回车键:结束输入 // 空格:输入分隔符,用于一次输入多个变量值 cin >> 变量名;
- 终端输出
// endl为换行符,常用操作 cout << 'the value is' << ran_num << endl; //“\n”也为换行符,适用于字符串 cout << 'the value is' << ran_num << "\n"; >>>the value is 4
- 递增(减)运算符(i++、i–)
// 先初始化j,后i int i = j = 1; // i先使用,再自增1 int x = i++; // 输出x的值为:1 cout << x << endl; // 输出i的值为:2 cout << i << endl; // 功能:j先自增加1,再使用 int y = ++j; // 输出y的值为:2 cout << y << endl; // 输出j的值为:2 cout << j << endl;
3.2 常用操作符
- 算数符号:+、-、*、/(相除取整数截取)、%(相除取余数)
- 组合赋值运算符:+=、-=、*=、/=、%=
- 逻辑运算符:&&(且)、||(或)、!(非)
- 比较运算符:>、<、=、!=
四、逻辑语句
4.1 判断语句
- if-else语句
// 注意:if(x=3),相当于判断if(3) // 区别于:if(x==3) if(判断语句) // 单条语句可不用大括号 { // 大括号只与>=2条语句的语句块配合使用 语句块; } else { 语句块; }
- if-else if语句
if(判断语句) { 语句块; } else if(判断语句) { 语句块; } else { 语句块; }
- 三目操作符
// 判断式?表达式1:表达式2 // 若判断式为真,执行1,否则执行2 x < 0 ? y = 10 : z = 20; // 三目赋值:将三目运算结果给变量a初始化 int a = x < 0 ? 10 : 20;
4.2 循环语句
- while语句
// 条件为true,继续进行循环体 while(判断语句) // 单条语句可不用大括号 { 语句块; }
- do-while语句
do // 单条语句可不用大括号 { 语句块; // 条件为true,继续进行循环体 }while(判断语句)
- for语句
// i的初始值为0;每次循环i加一;i最大值为10 for(int i = 0; i<=10; i++) // 单条语句可不用大括号 { 语句块; }
4.3 选择语句
- switch语句
// 一个整型或枚举类型 switch(变量) { // 例如:199、'a'(字符,内部以整形存储) case 子项值: 语句; break; default: 语句; }
break:跳出最内层循环
continue:跳出本次循环,进行下次循环
五、程序主语句
- 代码示例
/* #include ,预处理语句,在文件被编译之前,添加或删除文本, <iostream>,输入输出流,有此语句,才可调用cin和cout函数 */ #include<iostream> // 使用类std的命名空间,否则cout调用应写为std::cout using namespace std; // 全局区:声明或定义全局变量、常量、类、函数 // extern前缀类声明:用于在文件间共享的数据 // int表示程序对操作系统的返回值,0为正常退出 // main为程序主函数名称 int main() { // 局部变量区:定义局部变量 // 若为static前缀定义的变量,为本文件内,函数间共享的数据 int c_num; // 定义和程序其他部分建议用空行隔开 // 函数语句区(其中定义的变量也是局部变量) // 输出 cout << '请输入一个整数:'; // 输入,同时赋值 cin >> c_num; cout << '输入的整数为:' << c_num << endl; // return语句可不写,默认为此语句 return 0; }
调用全局变量:
::全局变量名
,显式调用全局变量,因为局部变量若与全局变量同名,则会暂时覆盖全局变量,直到释放局部变量,此方法直接调用全局变量,无视覆盖