C++_ch07_visual studio调试代码

news/2024/9/18 9:09:27/ 标签: c++, 开发语言

C++_ch07_visual studio调试代码

1.1 Break Point

断点就是程序执行到这里就会暂停,一个程序可以设置很多短点。在visual studio中只需要点击侧栏就可以设置断点。
在这里插入图片描述
点击左边的栏目,出现红点就是设置的断点。
另外要确保打断点的位置必须是可执行的代码,不然断点就没有意义。

此外,打断点必须是在Debug模式下进行。这样才有意义。
在这里插入图片描述

断点方便我们逐行执行代码,并观察问题出现在哪里。

1.2、用一段代码认识调试的过程

#include<iostream>int multiply(int a,int b)
{return a*b;
}int main()
{int n = 0;n = multiply(3,4);n++;const char* var = "Hello";for( int i = 0 ; i < 5 ; i++ ){const char c = var[i];std::cout<<c<<std::endl;}std::cin.get();return 0;
}

在这里插入图片描述
观察这个完整的界面:

1.2.1 黄色箭头

在这里插入图片描述
这个黄色箭头表示还没有运行但是即将运行所指向的那一行代码,只要你按了这个键:或者按F11
在这里插入图片描述
这个的意思是运行下一行代码。那么就会继续执行下去。

1.2.2观察变量区

在这里插入图片描述
注意看我们运行到我所设置的断电时已经有了n和var两个变量,此时n的值是13,那么我们可以肯定

int n = 0;n = multiply(3,4);n++;

这3行已经被执行了,var内的值为啥是这样的呢?因为在断点处我们的var还没被初始化。一旦我们继续运行,他的值就会变:
在这里插入图片描述
红色,表示该值马上就要改变了。再继续运行
在这里插入图片描述
此时var已经接受到了"Hello"这个值,并且var[i]已经知道了,因为我们已经进入了循环,计算机知道我们的变量i是0了。所以var[0] = ‘H’。

这个时候终端还没有任何输出:
在这里插入图片描述

1.2.3、观察内存

内存视图如何找:
在这里插入图片描述
会弹出这样的窗口:

在这里插入图片描述
左边灰色的是地址栏,右边是存储的数据。
如果我们要找到固定变量在内存中的地址和存储的数据,以n为例,只需要输入

&n

在这里插入图片描述
就可以看到n对应的是这个地址:
在这里插入图片描述
这里的0d是十六进制数。
d代表13。那么0d存储的就是13这个整数。我们可以看到n在此时确实是13.我们为了观察内存,可以看看n在内存中是不是慢慢变成13的。
在这里插入图片描述
此时内存存储的是0:
在这里插入图片描述
此时内存变成12。

在这里插入图片描述

此时内存变成了13。
内存确实是按照预想的变化的。


http://www.ppmy.cn/news/1517101.html

相关文章

WordPress美化节日灯笼插件,适合春节的时候使用

源码介绍&#xff1a; WordPress美化节日灯笼插件&#xff0c;适合每年过年的时候安在网站上使用&#xff0c;这款插件可以备用着&#xff0c;一款WordPress节日灯笼美化插件&#xff0c;可以给网页自动加一个灯笼效果使用说明&#xff1a;到网站WP后台 - 插件 - 安装插件 - 上…

【学术会议征稿】第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024)

第六届智能控制、测量与信号处理国际学术会议 (ICMSP 2024) 2024 6th International Conference on Intelligent Control, Measurement and Signal Processing 文化是人类社会相对于经济和政治的精神活动和产物。传统的人类观念认为&#xff0c;文化是一种社会现象&#xff0…

CDGA|数据治理:统一数据标准成为核心关切

在数字化转型浪潮席卷全球的今天&#xff0c;数据已成为企业最宝贵的资产之一&#xff0c;其价值不言而喻。然而&#xff0c;随着数据量呈爆炸式增长&#xff0c;数据来源多样化、格式不一、质量参差不齐等问题日益凸显&#xff0c;给企业的数据管理和利用带来了前所未有的挑战…

C语言基础(二十)

链表是一种常见的数据结构&#xff0c;通常用来存储一系列元素&#xff0c;每个元素由一个节点来表示。在链表中&#xff0c;每个节点包含两部分&#xff1a;数据元素本身和指向下一个节点的指针。这种结构使得链表中的元素在内存中不是连续存储的&#xff0c;而是通过指针连接…

电商支付异常处理分享

时间&#xff1a;2024年08月28日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频地址&#xff1a;https://xima.tv/1_1qSvgv?_sonic0 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋内推一下&#x…

Spring Boot如何压缩Json并写入redis?

1.为什么需要压缩json&#xff1f; 由于业务需要&#xff0c;存入redis中的缓存数据过大&#xff0c;占用了10G的内存&#xff0c;内存作为重要资源&#xff0c;需要优化一下大对象缓存&#xff0c;采用gzip压缩存储&#xff0c;可以将 redis 的 kv 对大小缩小大约 7-8 倍&…

如何考取PostgreSQL认证证书?

PostgreSQL数据库炙手可热&#xff0c;国内知名的腾讯云TDSQL、阿里云PolarDB都有PostgreSQL版本的产品&#xff0c;还有人大金仓、华为opengauss、翰高数据库等都跟PostgreSQL有关系&#xff0c;所以考一个PostgreSQL认证非常有必要。要获得PostgreSQL认证&#xff0c;可以从以…

PTA - C语言国庆题集1

目录 7-1 阶梯电价7-2 求矩阵的最大值&#xff08;设惟一&#xff09;7-3 换硬币&#xff08;鸡兔同笼&#xff09;7-4 逆序输出一个整数的各位数字7-5 交换最小值7-6 分段函数27-7 数组中能被5整除的数的和7-8 统计字母出现的次数&#xff08;hash思想&#xff09;7-9 字母三角…

openEluer安装软件提示系统缺少的一些库的解决

mysql客户端相关的坑 问题&#xff1a;mysql: error while loading shared libraries: libncurses.so.5 解决&#xff1a; ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5 问题&#xff1a;mysql: error while loading shared libraries: libtinfo.so.5 解决…

npm阿里云制品仓库

配置 配置仓库地址&#xff0c;可以再在仓库指南看到 npm config set registryxxxxx#登录&#xff0c;帐户密码可以在仓库指南看到 npm login注意&#xff1a;npm>9的版本npm login目前有问题 verbose web login not supported, trying couch&#xff0c;暂时没试验到解决…

数据结构-递归算法-第四天

参考文献&#xff1a; 华为云 博客园 labuladong 的算法笔记 递归是一种编程技巧&#xff0c;一种解决问题的思维方式&#xff1b;分治算法和动态规划很大程度上是递归思想基础上的&#xff08;虽然动态规划的最终版本大都不是递归了&#xff0c;但解题思想还是离不开递归&…

Linux环境使用docker搭建Navidrome本地个人音乐库并实现远程访问

文章目录 前言1. 安装Docker2. Docker镜像源添加方法3. 创建并启动Navidrome容器 前言 本文和大家分享一款目前在G站有11KStar的开源跨平台音乐服务器Navidrome&#xff0c;如何在Linux环境本地使用Docker部署&#xff0c;并结合cpolar内网穿透工具配置公网地址&#xff0c;实…

入门STM32--按键输入

上一篇博客我们介绍了如何使用GPIO配置跑马灯&#xff0c;根据GPIO的基本结构图&#xff0c;我们能够发现&#xff0c;他肯定不单单有输出的功能&#xff0c;肯定可以检测IO上的电平变化&#xff0c;实际上就是输入的功能。 1.按键 在大多数情况下&#xff0c;按键是一种简单的…

今日算法:蓝桥杯基础题之“切面条”

你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注&#xff01;个人知乎 从今天开始&#xff0c;一起了解算法&#xff0c;每日一题&#xff0c;从 JavScript 的技术角度进行解答&#xff0c;如果你对算法也感兴趣&#xff0c;请多多关注哦。 问题描述 一…

15 - FFmpeg 音频混音(过滤器)

过滤器链接流程 -------- auto_aresample_0:default--[48000Hz flt:stereo]--input0| amix |default--[48000Hz flt:stereo]--auto_aresample_2:default auto_aresample_1:default--[48000Hz flt:stereo]--input1| (amix) | …

Linux 数据结构 顺序表 链表

数据结构&#xff1a; 1.衡量一个程序是否优秀&#xff1a; 1.时间复杂度&#xff1a; 数据量增长与程序运行时间的比例关系以函数描述称为时间渐进复杂度函数,简称时间复杂度 O(c) > O(logn) > O(n) > O(nlogn) > O(n^2) > O(n^3) > O…

一个prolog最简单推理示例

假设现在知道一些年轻人&#xff0c;谁喜欢谁&#xff0c;定义为love(x, y)&#xff1b; 定义了一些这样的关系&#xff1b; 如果x喜欢y&#xff0c;y也喜欢x&#xff0c;则定义他们是一对情侣&#xff1b; 规则表示为&#xff1a; lovers(X,Y) :- love(X,Y), love(Y,X). 输入…

UniApp中的Flex布局技巧

随着移动互联网的迅速发展&#xff0c;越来越多的开发者开始使用跨平台技术来开发应用程序。而在跨平台开发里&#xff0c;uniapp是一种非常受欢迎的框架&#xff0c;由于使用uniapp可以快速地开发出同时支持多个平台的应用程序。在uniapp开发中&#xff0c;flex布局是一种非常…

【C++】异常 详解

目录 异常的引出与简介 异常的使用 异常逻辑图解 异常继承体系 异常的重新抛出 异常安全 异常规范 结语 异常的引出与简介 我们可以回忆一下&#xff0c;在C语言时期&#xff0c;我们返回错误的方式只有两个 一个是assert强制返回错误&#xff0c;还有一个就是返回错误…

第三十一章:docker如何部署Nexus

docker如何部署Nexus 目标 掌握 Nexus docker compose安装安装Docker和Docker Compose:确保您的系统已安装Docker和Docker Compose。如果尚未安装,可以参考Docker官方文档进行安装12。 创建Docker Compose文件:在您选择的目录下创建一个名为docker-compose.yml的新文件,并…