当前位置: 首页 > news >正文

01_visual_studio环境配置及C++基本概念入门

01_visual_studio环境配置及C++基本概念入门

1. 下载visual studio

  • 打开visual studio官网链接:visual studio官方网站

  • 点击下载visual studio:

  • 跳转此页面后,就已经开始下载了,如果未开始下载,可以手动点一下提示的位置:

  • 下载的是visual studio installer。

2. 安装visual studio

  • 把上一节下载的visual studio installer双击运行起来,勾选使用C++的桌面开发:

  • 安装位置可以改也可以不改,以下是本人对于软件安装目录的一些看法,仅供参考:

    • 无法脱离操作系统而独立存在的文件,比如:本次安装的VS等,建议直接放C盘,使用默认路径即可,和操作系统共生死。因为这样的话,重装系统时,就可以快速把操作系统和软件直接格式化掉,如果装在了其他盘,尤其是和个人文件放一个盘的话,还要手动删除安装目录,而安装目录一般都是一堆零碎文件,删除速度非常慢。
    • 可以独立于操作系统而存在的文件,比如:个人文件、绿色软件、原神等游戏的安装资源、虚拟机等,放其他盘。重装系统的话,只需要格式化C盘,能独立存在的文件不放C盘,就不需要被格式化掉,自然也无需备份,更省心。
    • 选好安装路径之后,点击右下角安装,等待安装完成即可。
  • 安装的visual studio不会自动创建桌面快捷方式,可以在搜索框中,搜索关键词:visual studio,即可看到刚刚安装的软件,将其拖到桌面即可创建快捷方式。

3. 创建最简单的C++程序

3.1 创建项目

  • 打开刚刚安装的visual studio,点击创建新项目

  • 在项目模板中,搜索C++,选择空项目,点击右下角下一步

  • 配置新项目:

    • 项目名称:给新项目起个名字,支持中文,但不建议用中文,不建议养成中文编码的习惯
    • 位置:选择项目和解决方案要放在哪里,支持中文,但不建议用中文,不建议养成中文编码的习惯
    • 解决方案名称:给解决方案起个名字,先可以理解为解决方案是项目的容器,一个解决方案里可以包含多个项目。VS以解决方案为单位,可以认为使用VS,必须要有一个解决方案。后续学习过程中会有所体会。同样不建议使用中文。
  • 创建完成是这个界面

  • 如果没看到解决方案资源管理器,可以在这里把它找出来

  • 解决方案资源管理器窗口,可以自由拖动,个人习惯放到左边,此窗口右上角三个按钮,中间那个按钮是固定,可以将解决方案资源管理器窗口固定住。

3.2 新建代码文件

  • 右键解决方案中的源文件,点击添加,点击新建项

  • 会弹出以下两种可能的界面,点击左下角展开所有模板,或者左下角显示紧凑视图,可以自由切换两种窗口界面


  • 给新建的cpp文件起个名字,选择其保存目录,点击添加即可。

3.3 编写最简单的cpp代码

#include<iostream> using namespace std; int main() { cout << "Hello world" << endl; system("pause"); return 0; }

3.4 运行程序

  • 点击上面的本地Windows调试器按钮,即可运行起程序

  • 运行结果如下

4. C++基本概念入门

4.1 代码与注释

4.1.1 C++代码补充说明
  • C++程序以main函数作为程序入口,所有程序都必须存在main函数
  • 关于C++的详细语法,在学习过程中慢慢体会即可,入门阶段无需扣得太细致。
4.1.2 注释
  • 注释是指代码中存在的一些说明性文字,一般用于标记此段代码用意、有何注意事项等。
    • 作用:方便自己后续回头看这段代码,或者在团队协作中,方便其他工程师阅读自己写的代码。
    • 良好的代码,不应当写大量注释,只在代码关键且难以理解的位置写简短注释即可。
    • 如果一段代码中含有大量注释,且都是一些浅显问题,那大概率是初级程序员或者AI写的
  • 注释一般有两种格式
    1. 单行注释:// 注释内容
      • 一般是写在一行代码末尾,或者一行代码上面
    2. 多行注释:/*注释内容*/
      • 虽然叫多行注释,但注释内容未必出现在多行
      • 通常出现在一段代码上方,对下面大段代码进行详细说明,或者就是下面这段代码的文档
#include<iostream> // 包含基本输入输出头文件 using namespace std; /* 这是main函数,是C++程序入口 */ int main() { cout << "Hello world" << endl; // 输出一行字 system("pause"); /* 多行注释出现在一行也是没问题的 */ return 0; }

4.2 变量、常量与宏定义

4.2.1 变量
  • 变量是给一块内存起的名字,后续可以使用这个变量读、写这块内存
  • 定义变量的语法是:数据类型 变量名 = 初始值;
  • 举例:
#include<iostream> using namespace std; int main() { int var = 1; // 这里的int是数据类型(整型),var是变量名,1是初始值 cout << "var = " << var << endl; system("pause"); return 0; }
4.2.2 常量
  • 常量的定义方法和变量基本相同,只是需要在前面加上const修饰
  • 常量是不可更改的数据
  • 举例:
#include<iostream> using namespace std; int main() { const int var = 1; // 使用const进行修饰,此时var就是常量,不可被修改 // var = 2; // 尝试修改,会编译报错 cout << "var = " << var << endl; system("pause"); return 0; }
4.2.3 宏定义
  • 宏定义本质是文本替换,这里先简单介绍,后续会遇到各种各样复杂的宏定义
  • 本人建议非必要不使用宏定义,调试难度比较高。有的场景必须使用宏定义则再使用,比如打log输出函数名时。
  • 举例:
#include<iostream> using namespace std; #define MAX 100 int main() { // 之所以说宏定义本质是文本替换,因为下面这句话在编译前的预处理阶段,就变成了这个样子: // cout << "MAX = " << 100 << endl; cout << "MAX = " << MAX << endl; // MAX = 200; // 同样是不可取的,预处理阶段会变成100 = 200,这显然是不可能的 system("pause"); return 0; }

4.3 关键字与标识符

4.3.1 关键字
  • 关键字是C++语言预先保留的词。
  • C++关键字节选如下:(不全)
asmdoifreturntypedef
autodoubleinlineshorttypeid
booldynamic_castintsignedtypename
breakelselongsizeofunion
caseenummutablestaticunsigned
catchexplicitnamespacestatic_castusing
charexportnewstructvirtual
classexternoperatorswitchvoid
constfalseprivatetemplatevolatile
const_castfloatprotectedthiswchar_t
continueforpublicthrowwhile
defaultfriendregistertrue
deletegotoreinterpret_casttry
4.3.2 标识符
  • 标识符是变量、常量、宏定义、函数等的名字,C++对这些进行命名时,需要遵循以下规则:
    • 标识符不能使用关键字,比如:int if = 1;,不可以,因为if是C++关键字,不可以被用作变量名
    • 标识符只能由字母、数字、下划线组成,且第一个字符不允许是数字,只允许是下划线或者字母
    • 标识符是大小写敏感的,严格区分大小写,比如:int a = 1; int A = 2;,a和A是两个完全不同、毫无关系的变量
      ,比如:int if = 1;,不可以,因为if是C++关键字,不可以被用作变量名
    • 标识符只能由字母、数字、下划线组成,且第一个字符不允许是数字,只允许是下划线或者字母
    • 标识符是大小写敏感的,严格区分大小写,比如:int a = 1; int A = 2;,a和A是两个完全不同、毫无关系的变量
  • 标识符建议做到见名知意,不建议使用拼音,不要养成任何中文编码的习惯。
http://www.gsyq.cn/news/1590203.html

相关文章:

  • Docker第3天:Dockerfile、Compose、Swarm、Machine学习整理
  • 机器学习新手生存指南:从环境配置到模型部署的实操路径
  • 深度评测:企业采购Token服务商,一张表打满5个维度
  • 导师推荐!2026年首选推荐的专业降AI率工具
  • Qwen2.5-VL本地部署实战:边缘多模态推理全链路指南
  • 2026深度实测:vibe coding优势全解析——企业级AI开发选型实战指南
  • DolphinDB工业数据质量:完整性检查与修复
  • 动图魔方技术拆解 10:GIF 多帧重编辑的 ImageSource 与 PixelMapList 实践
  • 铁电MEMS突触技术:神经形态计算新突破
  • MuleSoft企业级AI编排:LLM安全接入核心系统的实战方法论
  • 2026实测:两款主流AI编程工具全流程vibe coding体验对比
  • LSTM股票方向预测:分类建模与置信度输出实战
  • VMware虚拟机从入门到精通:完整安装指南
  • 用pytest构建AI应用测试体系:从语义断言到CI/CD集成
  • 线性代数直觉:用Python形状思维打通机器学习矩阵运算
  • 深度学习图像去重算法:3大技术方案实现高效重复图片检测
  • 模板驱动文档自动化:结构化内容注入与四层引擎设计
  • 如何深度解析QQ数据库加密机制:专业级跨平台解密实战指南
  • Android性能测试实战:Monkey与SoloPi工具组合使用指南
  • 企业级应用SQL注入漏洞深度剖析:从原理到实战复现
  • ROS TurtleBot RViz可视化环境从零搭建指南
  • 单变量异常检测:业务语义驱动的阈值设计与工程落地
  • 智能图像去重革命:ImageDedup让你的图片库焕然一新
  • Hugging Face Transformers:从模型加载到AI流水线的框架级实践
  • 加密流量分析实战指南:从TLS元数据到机器学习分类
  • LarkMidTable数据中台:10分钟搭建你的企业级数据集成平台
  • A-59F多功能语音模组:扩音防啸叫+双波束,智能对讲全场景解决方案
  • CVE-2023-49371漏洞剖析:MyBatis中${}占位符滥用引发的SQL注入风险与修复实践
  • 深度剖析chromatic:Chromium/V8广谱注入的5个实战突破技巧
  • OpenSSL三行命令快速定位CVE-2026-0947漏洞节点