看书的时候如何调试书中简单的C+代码?

代码看一百遍不如写一遍来的印象深刻,不管写C++还是Python,抑或别的语言,我们在看编程类书籍的时候面对一堆代码会很痛苦,硬着头皮啃完一本书可能会有所收获,但看完却不知所云,获取知识的效率很低,所以看这类书籍不能像看修仙小说一样一目十行去看,而要用代码验证自己心中的想法,如果看到一段代码立马能用于我的工作中这将是一件极其快乐有成就的事情,这也就是Python这类脚本语言让人如此激动的原因之一。

比如下面这段代码是《C++ Primer Plus》这本书中的样例代码,这篇文章会来验证它的输出以及断点调试是做什么用的?

想验证C++代码的输出不像Python那样简单,但它的调试功能的成熟却比Python要强大很多,首先我们要有一款IDE来编写C++代码,它是微软的Visual Studio,我这里以Visual Studio 2015专业版Update3来演示,只是因为Maya和Houdini最新版刚好都支持在这个版本上的开发,用哪个版本无所谓,大同小异。

我们来使用它验证图一中的C++代码,获取它的输出结果,并演示断点调试查看变量的功能。

Step 1、打开Visual Studio 2015

Step 2、新建项目pointer

Step 3、新建源文件pointer.cpp,并输入案例代码

Step 4、Visual Studio提供了五种调试方式

F5:开始调试,会重新编译代码然后运行

Ctrl+F5:开始执行,不会重新编译,直接运行生成的程序

F11:逐语句,它可以一行一行代码调试,遇到别的文件中调用的函数会切换到那个文件,是最详细的代码执行过程(Shift+F11返回)

F10:逐过程,它可以一行一行代码调试,但只在本文件中逐行调试

F9:切换断点,逐断点调试,一个断点一个断点地调试代码

以上提供的调试方式让你掌控整个代码是如何运行的,变量值是如何传递,以及如何返回调用的。

Step 5、我们按F5调试我们写的代码

会发现弹出黑框立马消失,程序好像成功运行了,但我看不到输出结果,此时需要加一句cin.get()来终止代码的完成就可以看到正确的输出结果。

Step 6、设置断点调试按F10逐行查看变量值。

动图中可以看到每一行代码按什么次序做了什么,下方的自动窗口中显示了实时的变量在内存中的存储值。大家玩一下就知道怎么用了,以前有个笑话说怎么看一个人是否是程序员,只要看他的键盘就知道了,如果他的键盘上F5、F9、F10、F11这几个键被磨得很厉害,他就是程序员无疑,说多了都是泪。

本文来自企鹅号 - CGRnDStudio媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

java高并发锁的3种实现

提到锁,大家可能都会想到synchronized关键字,使用它的确可以解决一切并发问题,但是对于系统吞吐要求更高的,在这里提供了几个小技巧,帮助大家减小锁粒度,...

1.4K30
来自专栏Youngxj

[安卓]QQ透明头像教程

19580
来自专栏黑泽君的专栏

JavaScript的介绍

 javascript是什么?     javascript 是因特网上最流行的脚本语言,它存在于全世界所有 Web 浏览器中,能够增强用户与 Web 站...

9620
来自专栏Ken的杂谈

屏蔽浏览器对网页JS脚本错误提示

网页脚本基本已经成了现在网站开发中不可或缺的元素,无论是使用JS:Javascript还是使用其他JS库:

36010
来自专栏铭毅天下

Elasticsearch聚合优化 | 聚合速度提升5倍!

? 1、聚合为什么慢? 大多数时候对单个字段的聚合查询还是非常快的, 但是当需要同时聚合多个字段时,就可能会产生大量的分组,最终结果就是占用 Elastic...

65670
来自专栏Golang语言社区

channel机理及调度理解

《Go语言编程》一书介绍了libtask库,可以认为这个库等同于go的底层goroutine实现。

11930
来自专栏Crossin的编程教室

这些年,你们一起踩过的坑(1)

编程教室创建5年多了,回答的问题不说上万也有好几千了。尽管大多数的问题在过去的文章以及论坛上都有讲过不止一遍,但因为不断有新人到来,难免还是被这些小坑磕磕绊绊一...

13350
来自专栏FreeBuf

某租车系统JAVA代码审计

前言 由于开源的JAVA WEB项目不是很多,这里找到一个没有用struct2或是spring框架的cms,希望借此cms来帮助新手敲开JAVA代码审计的大门,...

52280
来自专栏阮一峰的网络日志

Javascript模块化编程(一):模块的写法

随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。 ? 网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测...

451110
来自专栏ytkah

群用户通过微信小程序可以更好地协作了

  今天,小程序向开发者开放了群ID的接口能力。简单地说,就是当你把小程序分享在群聊中,被点击后开发者可获取群ID和群名称,也方便更好地针对群场景提供个性化服务...

55550

扫码关注云+社区

领取腾讯云代金券