shazhugw
码龄9年
关注
提问 私信
  • 博客:273,555
    273,555
    总访问量
  • 190
    原创
  • 947,051
    排名
  • 2
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2015-10-21
博客简介:

shazhugw的博客

查看详细资料
个人成就
  • 获得25次点赞
  • 内容获得0次评论
  • 获得13次收藏
创作历程
  • 1篇
    2018年
  • 39篇
    2017年
  • 136篇
    2016年
  • 15篇
    2015年
成就勋章
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

180人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

详细地调查这个话题

现在我们已经讨论了哪些功能以及它们的一些基本功能,让我们仔细看看它们为什么有用。为什么使用函数?新的程序员经常问:“我们把代码放在函数里面,难道不能直接放在main里面吗?“在许多情况下(特别是简单的例子),它可以。然而,函数提供了一些好处,使它们在非平凡程序中非常有用。繁琐的程序(例如小于20行代码),一些或所有这些可以在main()。然而,对于较长的程序(或
原创
发布博客 2018.01.02 ·
293 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

函数并使用逻辑非操作符

123456#include // for fabs()bool isAlmostEqual(double a, double b, double epsilon){ // if the distance between a and b is less than epsilon, then a and b are "close enough" return fab
原创
发布博客 2017.12.18 ·
497 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

正常值为浮点数

你已经看到了所有这些工作的方式,而且它们非常直观。每个操作符求值为布尔值true(1)或false(0)。下面是一些使用整数运算符的示例代码:#include int main(){ std::cout << "Enter an integer: "; int x; std::cin >> x; std::cout << "Enter a
原创
发布博客 2017.12.18 ·
357 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

输入无效文本输入的方式

大多数具有某种用户界面的程序都需要处理用户输入。在您编写的程序中,您一直在使用STD::CIN来请求用户输入文本输入。因为文本输入是如此自由的(用户可以输入任何东西),用户很容易输入不期望的输入。在编写程序时,应该始终考虑用户将如何(无意地或以其他方式)滥用程序。一个写得很好的程序会预测用户会如何误用它,或者处理这些情况,或者防止它们发生在第一位(如果可能的话)。一个处理错误案例的程序
原创
发布博客 2017.12.16 ·
543 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

具有永久改变x值的副作用

上面例子中的赋值操作符具有永久改变x值的副作用。即使语句完成执行后,x的值也将为5。++运算符具有增加X X的输出具有修改控制台的副作用副作用。然而,副作用也会导致意想不到的结果:int add(int x, int y){ return x + y;} int main(){ int x = 5; int value = add(x, ++x);
原创
发布博客 2017.12.16 ·
228 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

布尔变量

为了理解位操作操作符,首先需要了解整数是如何用二进制表示的。我们在第2.4节讨论了这一点——整数,并将在这里展开。考虑一个正常的十进制数,例如5623。我们直观地理解这些数字是指(5×1000)+(6×100)+(2×10)+(3×1)。因为有10个十进制数,所以每个数字的值增加了10倍。bool b1 = true; // copy initializationbool b
原创
发布博客 2017.12.16 ·
7180 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

调试器确实能派上用场

不幸的是,编译器将无法捕捉到这些类型的问题,因为编译器只知道您编写了什么,而不是您打算的内容。在上面的例子中,这些错误很容易被发现。但在最不平凡的程序,许多语义错误不容易通过目测找到代码。幸运的是,调试器确实能派上用场。调试器调试器是一种计算机程序,它允许程序员控制程序如何执行,并观察程序运行时发生了什么。例如,程序员可以使用调试器一行一行地执行程序
原创
发布博客 2017.12.16 ·
188 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

语法错误和语义错误

语法和语义错误编程很难,有很多方法可以犯错误。错误通常分为两类:语法错误和语义错误(逻辑错误)。语法错误发生时,你写了一个声明针对C++语言的语法无效。这包括错误如缺少分号,未声明的变量,不匹配的括号或大括号,和未结束的字符串。例如,下面的程序包含了相当多的语法错误:#include ; // preprocessor statements can't have a s
原创
发布博客 2017.12.16 ·
40445 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

命令执行下一行代码

你知道的,运行程序时,执行一开始就调用main()。因为我们想调试main()里面,我们开始用“进入”命令。在Visual Studio 2005 Express,去“调试”菜单并选择“进入”,或按F11。如果您使用的是不同的IDE,请在菜单中找到“进入”命令并选择它。当你这样做的时候,应该发生两件事。首先,因为我们的应用程序是一个控制台程序,控制台输出窗口应该打开。它
原创
发布博客 2017.12.16 ·
4158 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

使用调试生成配置

语法和语义错误编程很难,有很多方法可以犯错误。错误通常分为两类:语法错误和语义错误(逻辑错误)。语法错误发生时,你写了一个声明针对C++语言的语法无效。这包括错误如缺少分号,未声明的变量,不匹配的括号或大括号,和未结束的字符串。例如,下面的程序包含了相当多的语法错误:#include int add(int x, int y){ return x - y
翻译
发布博客 2017.12.16 ·
333 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

为你节省时间和挫败感

既然你已经学会了一些程序的基本知识,让我们更仔细地看看如何设计一个程序。当你坐下来写一个程序时,通常你会遇到一些你想解决的问题,或者你想模拟的情况。新的程序员常常很难理解如何将这个想法转换成实际的代码。但事实证明,你从日常生活中获得了很多你需要的解决问题的技能。记住最重要的事情(最难做的事情)是在开始编程之前设计你的程序。在许多方面,编程就像建筑。如果你不按照建筑计划建造房子,会发生什
原创
发布博客 2017.12.16 ·
194 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

识别它们为字符串

什么是字符串?第一个C++你写的程序,可能看起来像这样:#include int main(){ std::cout << "Hello, world!" << std::endl; return 0;}那么什么是“你好,世界”!“到底是什么?“你好,世界!“是连续字符的集合,称为字符串。在C++中,我们使用字符串来表示文本,如姓名、地址、词和句子。字
原创
发布博客 2017.12.11 ·
270 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

则该函数或表达式有副作用

在第三行中,x和y是递增/递减之前,他们的评价,所以他们的新值打印由cout。在第五行,一个原始值的临时副本(x = 6,y = 4)发送给cout,然后原来的x和y是递增的。这就是为什么从后缀式操作符的结果没有改变到下一行。规则:在增量和后减量后有利于预增加和预减量。前缀版本不仅更加高效,你就不太可能遇到奇怪的问题。副作用如果某个函数或表达式修改某个状态(例如
原创
发布博客 2017.12.11 ·
400 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

值5只被赋值给变量B

这似乎更清楚了,值5只被赋值给变量B。因为在一行上定义多个变量并初始化它们是错误的原因,我们建议您只在一行中定义多个变量,如果没有初始化其中的任何一个变量。规则:在初始化任何一行时避免在一行上定义多个变量。定义变量的地方旧的C编译器强迫用户在函数顶部定义函数中的所有变量:int main(){ // all variable up to
原创
发布博客 2017.12.11 ·
290 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

类型的C++除了整数

在上一节关于变量的课程中,我们谈到了变量是可以存储信息的一段内存的名称这一事实。简要概括起来,计算机的随机存取存储器(RAM),可供程序使用。当定义一个变量时,为该变量预留一块内存。最小的内存单位是二进制数字(位),它可以容纳0或1的值。你可以认为有点像传统的电灯开关,要么是灯关了(0),要么是(1)。两者之间没有关系。如果你看一段随机的内存,你会看到的是…01101010010101
原创
发布博客 2017.12.11 ·
302 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

理解运算符的操作

在数学中,运算是一种数学运算,它包含零或多个输入值(称为操作数),以产生输出值。常用操作(如加法)使用表示操作的特殊符号(如+)。这些符号称为运算符。编程人员的工作方式相同,但名称可能并不总是符号。运营商的工作类似于函数,输入参数并返回一个值,但它们更简明。例如,4 + 2 * 3是读比添加更容易(4,多(2, 3))!为了正确地评估表达式,如4 + 2 * 3,我们必须理解运算符的操
原创
发布博客 2017.12.11 ·
221 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

变量未初始化的可能性

这似乎更清楚了,值5只被赋值给变量B。因为在一行上定义多个变量并初始化它们是错误的原因,我们建议您只在一行中定义多个变量,如果没有初始化其中的任何一个变量。规则:在初始化任何一行时避免在一行上定义多个变量。定义变量的地方旧的C编译器强迫用户在函数顶部定义函数中的所有变量:int main(){ // all variable up to
原创
发布博客 2017.12.11 ·
3429 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据类型的C++

因为计算机上的所有数据只是一个位序列,所以我们使用一种数据类型(通常简称为“类型”)来告诉我们如何以某种有意义的方式解释内存的内容。您已经看到了一个数据类型的例子:整数。当我们将一个变量声明为一个整数时,我们告诉编译器“这个变量地址的内存将被解释为一个整数”。当您将值赋给数据类型时,编译器和CPU负责将您的值编码为该数据类型的适当比特序列的细节。当你要求你的价值回来时,你的数字是从记忆
原创
发布博客 2017.12.11 ·
180 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

静态持续时间

E这一章涉及了很多材料。干得好,你做得很好!语句块(又名。一个复合语句)由编译器处理,就好像它是一个语句一样。它们放在花括号({和})之间,几乎到处使用。本地变量是在变量定义点上创建的,当它们声明的块退出时就会被销毁。只能在声明它们的块内访问它们。全局变量是在程序启动时创建的,当它结束时就会被销毁。它们可以在程序中的任何地方使用。非const全局变量通常应该避免
原创
发布博客 2017.12.11 ·
950 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

算术表达式求值

算术表达式求值当评估表达式,编译器将每个表达为单独的子表达式。算术运算符要求它们的操作数是相同类型的。为了确保这一点,编译器使用以下规则:如果一个操作数是一个比int窄的整数,它将进行整数提升(如上所述)到int或无符号int。如果操作数仍然不匹配,则编译器找到最高优先级的操作数,并隐式地将其他操作数转换为匹配。操作数的优先级如下:#include #incl
原创
发布博客 2017.12.11 ·
383 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多