黑马程序员C++2024版笔记 第0章 C++入门

1.C++代码的基础结构

以hello_world代码为例:

预处理指令

#include<iostream>
using namespace std;

代码前2行是预处理指令,即代码编译前的准备工作。(编译是将源代码转化为可执行程序.exe文件的过程)

主函数

主函数是程序入口,即程序执行的开始。

其中的代码是逻辑代码/功能代码,每一行以分号;结尾。

int main()
{cout << "Hello World!" <<endl;return 0;
}

2.单工程多main函数设置

Clion是以工程管理代码,一般情况下,一个过程代指一个具体的程序开发任务。即,

  • 每个程序开发都有各自对应的工程
  • 由于main函数是工程的入口,所以每个工程仅允许1个main函数。

在学习过程中,每个知识点都创建一个文件夹不方便,一个比较直观的想法是,把每个文件下的main函数改成其他,比如main11,main22,但是这样就太难受了。

另一个办法:创建新文件时,把默认的“添加到目标”(add to target)取消勾选,即可正常运行。

3.手动编译代码并运行

使用Clion集成开发工具可以快捷的通过鼠标点击直接运行代码。但是作为开发人员,原始的代码编译并运行的方式也是需要了解的。

mingw工具可以实现在Windows、macos和Linux系统编译。

3.1编译器相关前置操作

MINGW下载

https://sourceforge.net/projects/mingw/

安装

双击exe程序安装,change可以改变安装位置,点击continue开始联网下载。

下载完成后点击continue就会弹出mingw 安装管理器:

选择mingw32和mingw32-gcc-g++,选中然后点击“mark for installation”

选中后在左上角installation选择apply changes,并在确认框点击apply

安装完成后关闭

检查

打开mingw的安装位置,选择bin文件夹并打开找到g++

配置环境变量

在windows搜索框里搜索“高级系统设置”,点击面板里的环境变量按钮,找到系统变量中的path变量,点击编辑。将bin文件夹所在路径复制并添加进path中,点击确定,环境变量就配置好了。

验证

windows+r,输入cmd,打开命令行。输入

g++ -v

并回车。如果弹出gcc版本(例如我的是gcc version 6.3.0)说明配置成功。

3.2手动编译代码

新建一个文本文件,把任意代码写进去。写完关闭并保存。

修改文件后缀为.cpp。代开命令行,使用cd命令切换到测试代码所在的文件夹

在当前目录下输入

g++ 文件名.cpp -o 文件名.exe

并回车。 

当前目录下除了test.cpp文件还生成了test.exe文件。直接输入test.exe回车就能运行了。

以上就是编译步骤。

这部分黑马的曹老师总结了一个文档方便大家记忆:手动编译代码并执行 · 语雀

4.[扩展]vscode环境配置

提示:配置vscode环境必须完成第三节的编译环境准备。

老师将配置过程写在这篇文档里了,可以结合b站的课程听一下。

C++入门-08_【扩展】VSCode环境配置_哔哩哔哩_bilibili

Visual Studio Code 配置 · 语雀

5.cout打印输出

在clion中创建cout源文件。注意补药勾选添加到目标。

单行输出:endl有换行作用

#include <iostream>
using namespace std;int main() {cout << "1" << endl;cout << "2" << endl;return 0;
}

一行多个输出:<<填充内容

#include <iostream>
using namespace std;int main() {cout << "1" << "+" << "1" << endl;return 0;
}

6.代码注释

单行注释

以//开头的行被视为注释,编译器不会对其进行处理。
// 所在行右侧内容作为注释存在
//和注释内容建议相隔一个空格。

多行注释

多行注释以/*开头,以*/结尾,中间全部内容为注释。在/*和*/之间可以任意换行。

7.Clion设置

1.修改为中文->安装Chinese插件

2.字体大小调整->设置搜索鼠标勾选”使用ctrl+鼠标更改字号“,选择所有编辑器

3.更换主题->插件搜索主题

4.快捷键

shift+alt+键盘上/下控制当前行进行上/下移动
ctrl+d复制当前
home、end移动光标到行首、行尾
ctrl+键盘左/右光标左右跳单词

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/81436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(22):复习 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)复习(2)復習3、单词(1)日语(2)日语片假名单词4、对话练习5、单词辨析记录6、总结1、前言 (1)情况说明 自己在今年,在日本留学中,目前在语言学校,…

Docker配置SRS服务器 ,ffmpeg使用rtmp协议推流+vlc拉流

目录 演示视频 前期配置 Docker配置 ffmpeg配置 vlc配置 下载并运行 SRS 服务 推拉流流程实现 演示视频 2025-05-18 21-48-01 前期配置 Docker配置 运行 SRS 建议使用 Docker 配置 Docker 请移步&#xff1a; 一篇就够&#xff01;Windows上Docker Desktop安装 汉化完整指…

Redis——缓存雪崩、击穿、穿透

缓存雪崩 大量缓存数据在同一时间过期或者Redis故障宕机时&#xff0c;若此时有大量请求&#xff0c;都会直接访问到数据库&#xff0c;导致数据库压力倍增甚至宕机。 大量数据同时过期解决方案&#xff1a; 1、均匀设置过期时间&#xff1a; 设置过期时间的时候可以追加一…

开源GPU架构RISC-V VCIX的深度学习潜力测试:从RTL仿真到MNIST实战

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;H卡级别算力&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生专属优惠。 一、开篇&#xff1a;AI芯片架构演变的三重挑战 &#xff08;引述TPUv4采用RISC-V的行业案…

字符串相乘(43)

43. 字符串相乘 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:string multiply(string num1, string num2) {string res "0";for (int i 0; i < num2.size(); i) {string str multiplyOneNum(num1, num2[num2.size() -…

mathematics-2024《Graph Convolutional Network for Image Restoration: A Survey》

推荐深蓝学院的《深度神经网络加速&#xff1a;cuDNN 与 TensorRT》&#xff0c;课程面向就业&#xff0c;细致讲解CUDA运算的理论支撑与实践&#xff0c;学完可以系统化掌握CUDA基础编程知识以及TensorRT实战&#xff0c;并且能够利用GPU开发高性能、高并发的软件系统&#xf…

[LevelDB]LevelDB版本管理的黑魔法-为什么能在不锁表的情况下管理数据?

文章摘要 LevelDB的日志管理系统是怎么通过双链表来进行数据管理为什么LevelDB能够在不锁表的情况下进行日志新增 适用人群: 对版本管理机制有开发诉求&#xff0c;并且希望参考LevelDB的版本开发机制。数据库相关从业者的专业人士。计算机狂热爱好者&#xff0c;对计算机的…

【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率

C容器的实践与应用&#xff1a;轻松掌握set、map与multimap的区别与用法 一. 序列式容器与关联式容器1.1 序列式容器 (Sequential Containers)1.2 关联式容器 (Associative Containers) 二. set系列使用2.1 set的构造和迭代器2.2 set的增删查2.2.1 插入2.2.2 查找2.2.3 删除 2.…

2_Spring【IOC容器中获取组件Bean】

Spring中IOC容器中获取组件Bean 实体类 //接口 public interface TestDemo {public void doSomething(); } // 实现类 public class HappyComponent implements TestDemo {public void doSomething() {System.out.println("HappyComponent is doing something...")…

安卓开饭-ScrollView内嵌套了多个RecyclerView,只想与其中一个RecyclerView有联动

在 Android 开发中&#xff0c;将 RecyclerView 嵌套在 ScrollView 内通常会导致性能问题和滚动冲突&#xff0c;应尽量避免这种设计。以下是原因和替代方案&#xff1a; 为什么不推荐 RecyclerView ScrollView&#xff1f;​​ 性能损耗​ RecyclerView 本身已自带高效回收复…

HTTP 请求中 Content-Type 头部

HTTP 请求中 Content-Type 头部可以设置的各种不同的传输格式。multipart/form-data 只是其中一种,主要用于传输包含文件的数据。 以下是一些常见的 HTTP 请求体的 Content-Type 及其用途: 常见的数据传输格式 (Content-Type) 列表: application/json: 描述: 用于传输 JSO…

【U-boot 命令使用】

文章目录 1 查询有哪些命令2 信息查询命令dbinfo - 查看板子信息printenv- 输出环境变量信息version - 输出uboot版本信息 3 环境变量操作命令修改环境变量新建环境变量删除环境变量 4 内存操作命令md命令nm命令mm命令mv命令cp命令cmp命令 5 网络操作命令与网络有关的环境变量p…

初学者如何用 Python 写第一个爬虫?

初学者如何用 Python 写第一个爬虫&#xff1f; 一、爬虫的基本概念 &#xff08;一&#xff09;爬虫的定义 爬虫&#xff0c;英文名为 Web Crawler&#xff0c;也被叫做网络蜘蛛、网络机器人。想象一下&#xff0c;有一个勤劳的小蜘蛛&#xff0c;在互联网这个巨大的蜘蛛网中…

IDE/IoT/搭建物联网(LiteOS)集成开发环境,基于 VSCode + IoT Link 插件

文章目录 概述IDE安装安装旧版本VSCode安装插件安装问题和解决手动安装SDK包手动下载依赖工具 IoTLink配置IoTLink Home用户设置-工具链-编译器用户设置-工具链-构建器用户设置-工具链-烧录器用户设置-SDK管理工程设置-SDK配置工程设置-编译器工程设置-调试器 创建工程Demo 源码…

深度剖析:Dify+Sanic+Vue+ECharts 搭建 Text2SQL 项目 sanic-web 的 Debug 实战

目录 项目背景介绍sanic-web Dify\_service handle\_think\_tag报错NoneType问题描述debug Dify调用不成功&#xff0c;一直转圈圈问题描述debug 前端markdown格式只显示前5页问题描述debug1. 修改代码2.重新构建1.1.3镜像3.更新sanic-web/docker/docker-compose.yaml4. 重新部…

理想AI Talk第二季-重点信息总结

一、TL&#xff1b;DR 理想为什么要做自己的基模&#xff1a;座舱家庭等特殊VLM场景&#xff0c;deepseek/openai没有解决理想的基模参数量&#xff1a;服务端-300B&#xff0c;VLencoder-32B/3.6B&#xff0c;日常工作使用-300B&#xff0c;VLA-4B为什么自动驾驶可以达成&…

TensorRT

TensorRT 下载 TensorRT 7.1.3.4 TAR压缩包&#xff0c;解压到安装目录&#xff1a; tar xzvf TensorRT-7.1.3.4.Ubuntu-16.04.x86_64-gnu.cuda-11.0.cudnn8.0.tar.gz 添加 TensorRT lib 到环境变量&#xff1a; gedit ~/.bashrc # 添加 export LD_LIBRARY_PATH$LD_LIBRARY_PAT…

【NGINX】 -9 nginx + tomcat实现的多级反向代理

文章目录 1、tomcat的安装 (centos版本)1.1 安装Java依赖环境1.2 安装tomcat 2、tomcat的虚拟主机的配置2.1 配置多级目录 3、利用nginx的反向代理实现将转发指向一个虚拟机3.1 nginx服务器的配置3.2 客户端配置 4、 反向多级代理代理服务器操作nginx 1 服务器nginx 2 服务器to…

基于requests_html的python爬虫

前言&#xff1a;今天介绍一个相对性能更高的爬虫库requests_html&#xff0c;会不会感觉和requests有点联系&#xff1f;是的。为什么开始不直接介绍呢&#xff1f;因为我觉得requests是最基本入门的东西&#xff0c;并且在学习过程中也能学到很多东西。我的python老师在介绍这…

【架构篇】架构类型解释

架构设计的本质&#xff1a;从模糊概念到系统化思维 摘要 “架构”是系统设计的灵魂&#xff0c;但许多人对它的理解仍停留在抽象层面。本文系统解析架构的8大核心维度&#xff0c;结合设计原则、案例与误区分析&#xff0c;帮助开发者建立从战略到落地的完整认知框架。 一、架…