C++使用教程
目录
一、软件使用
二、C++基础规则补充
关键字
整型取值范围
浮点型取值范围
字符型使用规则
字符串型使用规则
布尔类型
常用的转义移字符
三、数组、函数、指针、结构体补充
1.数组
2.函数
声明:
分文件编写:
值传递:
3.指针
空指针:
野指针:
利用指针访问数组中的元素:
利用指针在函数修改实参的值:
地址传递:
const修饰指针:
1)const修饰指针--常量指针
2)const修饰常量--指针常量
3)const既修饰指针,又修饰常量
以冒泡排序为例三者的结合应用
4.结构体
结构体嵌套
结构体做函数参数
结构体const使用场景
四、C++语句及函数
三目运算符
switch语句
goto语句
system("pause")的使用
sizeof()的使用
stoi( )函数
一、软件使用
Visual Studio
打开在右侧的管理器源代码下创建文件
二、C++基础规则补充
关键字
定义常量变量(标识符)不可使用关键字作名字
标识符字母区分大小写
整型取值范围
short:1*10^4
int:1*10^9
long long:1*10^19
以上为约数
浮点型取值范围
float:7位有效数字
double:15位有效数字
字符型使用规则
1)用单引号将字符括起来
2)单引号中只能有一个字符,不能是字符串
3)其实际上储存的是字符的ASCII码
char name = 'a';
字符串型使用规则
加头文件#include<string>
布尔类型
true为1,false为0
bool a = true;
cout << a;
输出结果为1
常用的转义移字符
"\\":输出\
"\t":水平制表符(一共占8个位置,不满用空格补齐)
主要为了整齐的输入数据
cout << "aa\t123" << endl;
cout << "aaa\t123" << endl;
cout << "aaaa\t123" << endl;
三、数组、函数、指针、结构体补充
1.数组
直接输出数组名可以查看数组的首地址
若想具体查看其中某一个具体元素的地址,则在输出的时候前加& (取址符)
2.函数
声明:
函数的声明可以写多次,但定义只有一次
(声明即为函数的第一行)
分文件编写:
值传递:
即在函数调用时实参将数值传入给形参
值传递时,如果形参发生改变,并不会影响实参
比如,在写到交换函数时,会存在这样的错误写法:
#include<iostream>
using namespace std;
void swap(int x, int y)
{int f = x;x = y;y = f;
}
int main()
{int a = 10;int b = 20;swap(a, b);cout << a << ' ' << b;return 0;
}
这时运行结果输出的a,b的值并没有发生交换
原因在于形参只在函数内有用,当实参传递值给形参时,形参只是作为实参的临时拷贝 ,值传递时并没有改变实参。改变值需要传递地址进行调用,使函数内部可以操纵函数外部的变量
如果函数不需要返回值,声明可以写void,且可以不写return
3.指针
通过指针间接访问内存
int a = 10;
int * p;
p = &a;
*p =1000;
这里输出p为a的地址
在指针前加*代表解引用,找到指针指向的内存中的数据
空指针:
指针变量指向内存中编号为0的空间
用途:初始化指针变量
空指针指向的内存不可访问(0~255之间的内存编号是系统占用的)
int * p=NULL;
野指针:
指针变量指向非法的内存空间(一种错误)
空指针和野指针都不是用户申请的空间,不要进行访问
利用指针访问数组中的元素:
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
int* p = a;//a就是数组的首地址
cout << *p << endl;//访问第一个元素
p++;//让指针向后偏移四个字节
cout << *p << endl;//访问第二个元素
return 0;
利用指针在函数修改实参的值:
地址传递:
#include<iostream>
using namespace std;
void swap(int *x, int *y)
{int f = *x;*x = *y;*y = f;
}
int main()
{int a = 10;int b = 20;swap(&a,&b);cout << a << ' ' << b;return 0;
}
const修饰指针:
分三种情况
1)const修饰指针--常量指针
指针的指向可以改,指针指向的值不可以改
const int * p = &a;
2)const修饰常量--指针常量
指针的指向不可以改,指针指向的值可以改
int * const p = &a;
3)const既修饰指针,又修饰常量
指针的指向,指针指向的值都可以改
const int * const p = &a;
以冒泡排序为例三者的结合应用
#include<iostream>
using namespace std;
void Paixu(int*a, int len)
{for (int i = 0; i < len - 1; i++){for (int j = 0; j < len - 1 - i; j++){if (a[j] > a[j + 1]){int f = a[j];a[j] = a[j + 1];a[j + 1] = f;}}}
}
void Prin(int* a, int len)
{for (int i = 0; i < len; i++){cout << a[i];}
}
int main()
{int a[10] = { 4,3,6,9,1,2,10,8,7,5 };int len = sizeof(a) / sizeof(a[0]);Paixu(a, len);Prin(a, len);return 0;
}
4.结构体
#include<iostream>
using namespace std;struct Student
{string name;int age;double score;
}stu;//stu作为结构体变量
给结构体赋初始值:
int main()
{
//方法一stu.name = "小明";stu.age = 18;stu.score = 99.7;
//方法二struct Student stu[3] ={{ "小七", 19, 100},{ "小可", 23, 90 },{ "小时", 18, 80 }};
//方法三(结构体指针)Student* p = &stu[0];cout << p->age;return 0;
}
结构体嵌套
赋值时:结构体变量1.结构体变量2
结构体做函数参数
构造函数
//值传递
void printStudent1(struct Student stu)
{//cout<<......
}
//地址传递
void printStudent2(struct Student* p)
{//cout<<......
}
传递
//值传递
printStudent1(stu);
//地址传递
printStudent2(&stu);
结构体const使用场景
在使用函数对结构体进行地址传递时,在函数中误改结构体中的值会影响到实参本身,当在函数中对传递的指针使用const,则使函数无法影响实参。
void printStudent(const Student *stu)
{//cout<<....
}
四、C++语句及函数
三目运算符
格式:表达式1?表达式2:表达式3
如果表达式1成立,则执行表达式2;不成立则执行表达式3
其返回的变量可以继续赋值
switch语句
执行多条件分支语句
格式:switch(表达式)
{
case 结果1:执行语句;break;
………………
default:执行语句;break;(前面的都不符合)
}
goto语句
无条件跳转语句
格式:goto 标记
即如果标记名称存在,在执行到goto语句时,会跳转到标记的位置
system("pause")的使用
1)通常用于在命令行窗口中暂停程序的执行,等待用户按下任意键继续
2)目的在于在程序执行完毕后保持命令行窗口打开,以便用户能够查看程序的输出结果
sizeof()的使用
显示数据类型占用内存的大小(字节)
括号里放数据类型或变量
常用于求数组中元素的个数
int num[5] = { 1,2,3,4,5 };
int a = sizeof(num);
int b = sizeof(num[0]);
int sum = sizeof(num) / sizeof(num[0]);
stoi( )函数
Ⅰ.在头文件#include<string>中
Ⅱ.其作用将数字字符串转化为int输出(可自动去除前导0)
Ⅲ.存在范围限制(int)
相关文章:
![](https://img-blog.csdnimg.cn/direct/4cd09080de694be7aab78b52073c482f.png)
C++使用教程
目录 一、软件使用 二、C基础规则补充 关键字 整型取值范围 浮点型取值范围 字符型使用规则 字符串型使用规则 布尔类型 常用的转义移字符 三、数组、函数、指针、结构体补充 1.数组 2.函数 声明: 分文件编写: 值传递: 3.指…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
k8s volcano + deepspeed多机训练 + RDMA ROCE+ 用户权限安全方案【建议收藏】
前提:nvidia、cuda、nvidia-fabricmanager等相关的组件已经在宿主机正确安装,如果没有安装可以参考我之前发的文章GPU A800 A100系列NVIDIA环境和PyTorch2.0基础环境配置【建议收藏】_a800多卡运行环境配置-CSDN博客文章浏览阅读1.1k次,点赞8…...
![](https://img-blog.csdnimg.cn/direct/dd8249d0891149808b878807417bdc0e.png)
设计模式(七)创建者模式之建造者模式
这里写目录标题 概述需求需求类图BikeBuilderMobikeBuilderOfoBuilderDirectorClientClient优缺点使用场景 模式扩展ComputerClient创建者模式对比工厂方法模式VS建造者模式抽象工厂模式VS建造者模式 总结 概述 建造者模式又叫生成器模式,是一种对象构建模式。它可…...
![](https://www.ngui.cc/images/no-images.jpg)
# class中的__call__方法解析
class中的__call__方法解析 文章目录 class中的__call__方法解析1. 为什么要有call,什么情况下用call?1.1 为什么要有 __call__ 方法1.2 没有 __call__ 方法是否可以1.3 使用 __call__ 方法的典型场景1.3.1 示例1:简单函数对象1.3.2 示例2&am…...
![](https://www.ngui.cc/images/no-images.jpg)
React逻辑复用的方式都有哪些
在日常开发中,能够优雅的复用组件和逻辑,是优秀开发者的职责。在react中,复用逻辑的方式有很多,可以适用于不同的业务场景。今天说三个比较有代表性的,Render Props、HOC、Hooks Render Props 创建一个接受函数作为其…...
![](https://www.ngui.cc/images/no-images.jpg)
【LinuxC语言】线程重入
文章目录 前言线程重入是什么线程重入实现示例代码总结前言 在并发编程中,我们经常需要处理多个线程同时访问和修改共享资源的问题。这可能会导致数据竞争和状态不一致,从而使程序的行为变得不可预测。为了解决这个问题,我们引入了一种称为“线程重入”的机制。线程重入,或…...
![](https://img-blog.csdnimg.cn/direct/d692d00806a946e084f6b25b1b75022b.png#pic_center)
【Streamlit学习笔记】Streamlit-ECharts箱型图添加均值和最值label
Streamlit-ECharts Streamlit-ECharts是一个Streamlit组件,用于在Python应用程序中展示ECharts图表。ECharts是一个由百度开发的JavaScript数据可视化库Apache ECharts 安装模块库 pip install streamlitpip install streamlit-echarts绘制箱型图展示 在基础箱型…...
![](https://www.ngui.cc/images/no-images.jpg)
Docker镜像仓库:存储与分发Docker镜像的中央仓库
探索Docker镜像仓库:存储与分发Docker镜像的中央仓库 如果你是Docker的新手,或者已经在使用Docker但还不太了解Docker镜像仓库,那么这篇博客将是你的最佳指南。我们将从基础概念开始,逐步深入,帮助你全面掌握Docker注…...
![](https://www.ngui.cc/images/no-images.jpg)
FreeRTOS必考面试题及参考答案
什么是RTOS?FreeRTOS是什么?它主要应用于哪些领域? RTOS,即实时操作系统(Real-Time Operating System),是一种专门为实时应用程序设计的操作系统,它强调的是对外部事件的快速响应和可预测性。实时系统通常要求在严格的时限内完成关键任务,因此RTOS具备优先级调度、确…...
![](https://www.ngui.cc/images/no-images.jpg)
面试题2:从浏览器输入一个URL,到最终展示前端页面这一过程,会发生什么?
这是一个高频的面试题目。 题目答案是开放性的,一般以后端开发的角度回答。 当地址栏输入一个 URL 后: 一、首先会进行 DNS 域名解析 DNS 域名解析:网络上的设备都是通过 IP 地址,作为身份标识的。但是由于点分十进制的 IP 地址 …...
![](https://img-blog.csdnimg.cn/direct/75f4cb6bda1e48ab803b418b9c776111.gif#pic_center)
<Rust><iced><resvg>基于rust使用iced构建GUI实例:使用resvg库实现svg转png
前言 本文是使用rust库resvg来将svg图片转为png图片。 环境配置 系统:windows 平台:visual studio code 语言:rust 库:resvg 代码分析 resvg是一个基于rust的svg渲染库,其官方地址: An SVG rendering li…...
![](https://www.ngui.cc/images/no-images.jpg)
面试突击:Java 中的泛型
本文已收录于:https://github.com/danmuking/all-in-one(持续更新) 前言 哈喽,大家好,我是 DanMu。今天想和大家聊聊 Java 中的泛型。 什么是泛型? Java 泛型(Generics) 是 JDK 5…...
![](https://img-blog.csdnimg.cn/direct/20a16b7d2dde4fcdb43501b7d3b1d8bd.png)
3_2、MFC常用控件用法:组合框、滚动条和图片控件
MFC控件用法 1、组合框1.1 简介1.2 创建CComboBox类的主要成员函数 1.3 实例 2、滚动条控件2.1 简介2.2 创建CScrollBar类的主要成员函数 2.3 实例 3、图片控件3.1 简介3.2 创建图片控件静态加载图片图片控件动态加载图片 1、组合框 1.1 简介 组合框其实就是把一个编辑框和一…...
![](https://img-blog.csdnimg.cn/direct/e84214ebaee244b4af10b8e21d9b1bd6.png#pic_center)
如何使用gprof对程序进行性能分析
如何使用gprof对程序进行性能分析 目录 1 gprof概述 2 gprof原理简述 3 gprof使用 3.1 gprof使用简述 3.2 gprof使用示例 4 小结 1 gprof概述 gprof 是 一个 GNU 的程序性能分析工具,可以用于分析C\C程序的执行性能。gprof工具可以统计出各个函数的调用次数、执…...
![](https://img-blog.csdnimg.cn/direct/eae503a8baf84b6eab5aac5f8918dca3.jpeg)
四川汇聚荣科技有限公司靠谱吗?
在如今这个信息爆炸的时代,了解一家公司是否靠谱对于消费者和合作伙伴来说至关重要。四川汇聚荣科技有限公司作为一家位于中国西部地区的企业,自然也受到了人们的关注。那么,这家公司究竟如何呢?接下来,我们将从多个角度进行深入…...
![](https://img-blog.csdnimg.cn/img_convert/4be4d2d5d554d4fb991ea08cfd1cef18.png)
可灵王炸更新,图生视频、视频续写,最长可达3分钟!Runway 不香了 ...
现在视频大模型有多卷? Runway 刚在6月17号 发布Gen3 ,坐上王座没几天; 可灵就在6月21日中午,重新夺回了王座!发布了图生视频功能,视频续写功能! 一张图概括: 二师兄和团队老师第一…...
![](https://www.ngui.cc/images/no-images.jpg)
oracle中使用临时表GLOBAL TEMPORARY TABLE
需要在存储过程中返回一个临时结果集,这个结果集又是多个语句通过循环查询出来的,这时候就想到了将结果插入到临时表中,然后返回临时表的数据的思路,于是有了以下操作: 1.创建临时表 -- Create table create global …...
![](https://img-blog.csdnimg.cn/direct/6d84de0ec8b4498a8b3a756664126907.png)
Gradio入门—快速开始
目录 安装构建您的第一个演示分享您的演示核心 Gradio 课程聊天机器人gr.ChatInterface自定义演示gr.BlocksGradio Python 和 JavaScript 生态系统 Gradio 是一个开源 Python 软件包,可让您快速为机器学习模型、API 或任何任意 Python 函数构建演示或 Web 应用程序。…...
![](https://img-blog.csdnimg.cn/direct/1a700e77ee144fbe8f4e2c2925009b2a.png)
AOP应用之系统操作日志
本文演示下如何使用AOP,去实现系统操作日志功能。 实现步骤 引入AOP包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><version>2.6.6</version></de…...
![](https://img-blog.csdnimg.cn/direct/a2105adf64014709aa4eff1666406fbc.jpeg)
海外云手机自动化管理,高效省力解决方案
不论是企业还是个人,对于海外社媒的营销都是需要自动化管理的,因为自动化管理不仅省时省力,而且还节约成本; 海外云手机的自动化管理意味着什么?那就是企业无需再投入大量的人力和时间去逐一操作和监控每一台设备。 通…...
![](https://www.ngui.cc/images/no-images.jpg)
后仿真中的 《specify/endspecify block》之(5)使用specify进行时序仿真
前面我们学习了specify...endspecify 具体是什么东西。今天,我们使用specify block 中定义的延时,来进行一次仿真。看看到底是背后如何运转的呢。 一 基本例子 一个用 specify 指定延迟的与门逻辑描述如下: module and_gate(output Z,input A, B);assign Z = A & …...
![](https://img-blog.csdnimg.cn/direct/59e13e8f479f41508e7fa755a1667760.png)
win10/11磁盘管理
win10/11磁盘管理 合并磁盘分区的前提是你的两个磁盘区域是相邻的,比如如下: 如果需要吧这个磁盘进行分解,你可以选择压缩一部分磁盘或者是直接删除卷 我这里的话,因为压缩出来的卷和C盘好像是不相邻的(我之前做过&…...
![](https://www.ngui.cc/images/no-images.jpg)
【昇思初学入门】第四天打卡
数据变换Transforms 心得体会 MindSpore提供了丰富的数据变换工具,针对图像数据可以使用如Rescale、Normalize和HWC2CHW等,且使用Compose类允许我们定义一个变换序列,并将它们作为一个整体应用到数据上。 composed transforms.Compose([v…...
![](https://img-blog.csdnimg.cn/direct/65b9606a3ebc453ebc20f265ebca8195.png)
禁用/屏蔽 Chrome 默认快捷键
Chrome 有一些内置的快捷键,但是它并没有像其他软件一样提供管理快捷键的界面。在某些时候,当我们因为个人需求希望禁用 Chrome 某些快捷键时,又无从下手。 好在有开发者开发了 Chrome 插件,可以禁用 Chrome 快捷键的插件&#x…...
![](https://img-blog.csdnimg.cn/direct/a46a933590484ea380e28a3be618dc31.png)
移动端+PC端应用模式的智慧城管综合执法办案平台源码,案件在线办理、当事人信用管理、文书电子送达、沿街店铺分析
城市管理综合执法管理平台实现执法办案、业务全流程在线办理,依托移动端PC端的“两端”应用模式,保障能够通过信息化手段进行日常的执法办案工作,强化执法监督功能。提供了案件在线办理、当事人信用管理、文书电子送达、沿街店铺分析等功能&a…...
![](https://www.ngui.cc/images/no-images.jpg)
AI音乐大模型时代:版权归属与创意产业的新生长点
AI在创造还是毁掉音乐? 简介:最近一个月,轮番上线的音乐大模型,一举将素人生产音乐的门槛降到了最低,并掀起了音乐圈会不会被AI彻底颠覆的讨论。短暂的兴奋后,AI产品的版权归属于谁,创意产业要…...
![](https://www.ngui.cc/images/no-images.jpg)
C++函数作为参数
C++函数作为参数 在C++中,函数作为另一个函数的参数是非常常见的做法,特别是在处理回调函数和泛型编程时。我们展示了如何在C++中将函数作为参数传递给另一个函数,包括普通函数、std::function 和 std::bind、lambda表达式以及类成员函数。每种方法都有其独特的优势,可以根…...
![](https://img-blog.csdnimg.cn/direct/46bb936bb6b84561aa4770879788536a.png)
考前刷题练手感(北航期末往年数据结构编程题)
本次因为是考前一天极速刷题,所以没有讲解,若有问题可私信。 目录 一、 查找同时空人员二、 老鼠回家-无回路三、函数调⽤关系四、东二食堂模拟五、栈帧 一、 查找同时空人员 【问题描述】 假设一共有6个手机基站,都具有记录手机连接基站状…...
![](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimg2.imgtp.com%2F2024%2F05%2F27%2FecnWy72K.jpg&pos_id=img-YcqVt17Y-1719021027420)
Android记录9--实现转盘效果
自定义View /2013.10.16_TurnPlate_Demo/src/com/wwj/turnplate/TurnPlateView.java package com.wwj.turnplate; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; im…...
![](https://img-blog.csdnimg.cn/direct/deed239f81d141e19072b41487e7c3d3.png)
【Oracle APEX开发小技巧1】转换类型实现显示小数点前的 0 以 及常见类型转换
在 apex 交互式式网格中,有一数值类型为 NUMBER,保留小数点后两位的项,在 展示时小数点前的 0 不显示。 效果如下: 转换前: m.WEIGHT_COEFFICIENT 解决方案: 将 NUMBER(20,2…...
![](/images/no-images.jpg)
国外做宠物产品的网站/百度查一下
冈萨雷斯版<图像处理>里面的解释非常形象:一个恰当的比喻是将傅里叶变换比作一个玻璃棱镜。棱镜是可以将光分解为不同颜色的物理仪器,每个成分的颜色由波长(或频率)来决定。 傅里叶变换可以看作是数学上的棱镜,将…...
![](https://images2015.cnblogs.com/blog/799093/201607/799093-20160724234054216-576481851.jpg)
河北省和城乡建设厅网站/求职seo推荐
此块内容参考Ajax文档部分。主要复习内容:1.JavaScript核心对象 2.浏览器BOM对象3.文档对象模型DOM4.常见事件5.Ajax编程(web交互2种方式的对比)6.传统Ajax编程的步骤以及从服务器端返回的数据格式 7.JSON数据格式的转换操作 8.jQuery选择器 9.jQuery的Ajax编程(常见…...
![](/images/no-images.jpg)
哈尔滨快速建站点击查看/成都网络营销公司排名
本文主要和大家分享react轮播图组件react-slider-light详解,希望能帮助到大家。react-slider-lighta lightweight Slider component built with react.一个轻量级的 react 轮播组件Table of ContentsFeatures特性Demos演示Getting Started快速开始InstallUseDevelop…...
![](https://img-blog.csdnimg.cn/2e9fc54717734a46afda9f620774670a.png)
成都住房和城乡建设厅网站/如何广告推广
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
![](/images/no-images.jpg)
企业网站建设和实现 论文/百度站长平台app
问题:Thread.join的代码如下,为什么没有加锁却可以wait?另外下面的代码说明线程结束的时候会signal正在wait的线程,实际是signalAll()。 while(isAlive()){ wait(0); } 并发工具类(提供超时等重载方法,含有…...
![](/images/no-images.jpg)
免费外贸网站/cdq百度指数
一般程序写的爬虫程序都会自带请求头,不知不觉就被网站拒绝了,请求之前可以看看自己的请求头是什么,确保不被禁 地址:https://httpbin.org/ 如果网站太慢打不开,想在本地搭建测试环境,可以在docker环境下…...