当前位置: 首页 > news >正文

给孩子做衣服的网站网站建设需要资料

给孩子做衣服的网站,网站建设需要资料,网络营销推广方式案例分析,企业网站与网络营销文章目录 2.1 iostream介绍#xff1a;cout、cin和endl2.1.1 输入/输出库2.1.2 std::cout2.1.3 std::endl2.1.4 std::cout是缓冲的2.1.5 std::endl与\n2.1.6 std::cin2.1.7 总结2.1.8 练习时间 2.2 未初始化的变量和未定义的行为2.2.1 未初始化的变量2.2.2 未定义行为2.2.3 明… 文章目录 2.1 iostream介绍cout、cin和endl2.1.1 输入/输出库2.1.2 std::cout2.1.3 std::endl2.1.4 std::cout是缓冲的2.1.5 std::endl与\n2.1.6 std::cin2.1.7 总结2.1.8 练习时间 2.2 未初始化的变量和未定义的行为2.2.1 未初始化的变量2.2.2 未定义行为2.2.3 明确定义的行为和不明确定义的行为2.2.4 练习时间 2.3 关键字和命名标识符2.3.1 关键字2.3.2 标识符命名规则2.3.3 标识符命名最佳实践2.3.4 练习时间 2.4 空白和基本格式2.4.1 某些语言元素必须以空格分隔2.4.2 引用的文本按字面意思使用空格的数量2.4.3 使用空白来格式化代码2.4.4 基本格式 2.5 本章答案 2.1 iostream介绍cout、cin和endl 本节我们将更多地讨论在“Hello, World!”程序中使用的std::cout语句将文本“Hello, World!”输出到控制台。我们还将探讨如何从用户获取输入我们将使用这些使我们的程序更具交互性。 2.1.1 输入/输出库 输入/输出库io 库是处理基本输入和输出的C标准库的一部分。我们将使用此库中的功能从键盘获取输入并将数据输出到控制台。iostream的io部分代表输入/输出。 要使用iostream库中定义的功能我们需要在使用iostream中定义的内容的任何代码文件的顶部包含iostream 标头如下所示 #include iostream// 此处使用iostream功能的其余代码2.1.2 std::cout iostream库包含一些预定义的变量供我们使用。最有用的之一是std::cout它允许我们将数据发送到控制台以打印为文本。cout代表“字符输出”。 作为复习这是我们的“Hello, World!”程序 #include iostream // 为了使用 std::coutint main() {std::cout Hello world!; // 打印 Hello world! 到控制台return 0; }在这个程序中我们包含了iostream以便可以使用std::cout。在我们的主函数中我们使用std::cout以及插入运算符来发送文本Hello world!到要打印的控制台。 std::cout不仅可以打印文本还可以打印数字 #include iostream // 为了使用 std::coutint main() {std::cout 4; // 打印 4 到控制台return 0; }这将产生结果 4它还可用于打印变量的值 #include iostream // 为了使用 std::coutint main() {int x{ 5 }; // 定义整形变量x初始化为值5std::cout x; // 将x的值5打印到控制台return 0; }这将产生结果 5要在同一行上打印多个内容可以在单个语句中多次使用插入运算符来连接。例如 #include iostream // 为了使用 std::coutint main() {std::cout Hello world!;return 0; }此程序打印 Hello world!下面是另一个示例我们在同一语句中同时打印文本和变量的值 #include iostreamint main() {int x{ 5 };std::cout x is equal to: x;return 0; }此程序打印 x is equal to: 52.1.3 std::endl 您觉得此程序会打印什么 #include iostream // for std::coutint main() {std::cout Hi!;std::cout My name is Alex.;return 0; }您可能会对结果感到惊讶 Hi!My name is Alex.单独的输出语句不会导致控制台上的输出行单独即换行。 如果我们想将单独的输出行打印到控制台我们需要告诉控制台何时将光标移动到下一行。 一种方法是使用std::endl。使用std::cout输出时std::endl会将换行符打印到控制台导致光标转到下一行的开头。在这种情况下endl代表“终点线”。 例如 #include iostream // 为了使用 std::cout 和 std::endlint main() {std::cout Hi! std::endl; // std::endl 将使光标移动到控制台的下一行std::cout My name is Alex. std::endl;return 0; }这将打印 Hi! My name is Alex.拓展 在上面的程序中第二个std::endl实际上不是必需的因为程序会立即结束。但是它有一些有用的目的。 首先它有助于指示输出行是一个“完整的思想”而不是在代码后面的某个地方完成的部分输出。从这个意义上说它的功能类似于在标准英语中使用句点。其次它将光标定位在下一行这样如果我们稍后添加额外的输出行例如让程序说“Bye!”这些行将出现在我们期望的位置而不是附加到前一行输出。第三从命令行运行可执行文件后某些操作系统在再次显示命令提示符之前不会输出新行。如果我们的程序没有以新行上的光标结尾则命令提示符可能会附加到前一行输出而不是用户期望的新行的开头。 最佳实践 每当一行输出完成时就输出换行符。 2.1.4 std::cout是缓冲的 考虑您最喜欢在游乐园乘坐过山车。乘客出现以某种可变的速度并排队。火车定期到达并登上乘客直到火车的最大容量。当火车满员或经过足够的时间后火车带着一批乘客出发然后开始乘坐。任何无法登上当前列车的乘客都等待下一班列车。 这个类比类似于发送到std::cout的输出通常在C中处理的方式。程序中的语句请求将输出发送到控制台。但是该输出通常不会立即发送到控制台。相反请求的输出“排队”并存储在为收集此类请求而预留的内存区域中称为缓冲区。缓冲区会定期刷新这意味着缓冲区中收集的所有数据都将传输到其目标在本例中为控制台。 这也意味着如果程序在刷新缓冲区之前崩溃、中止或暂停例如出于调试目的则不会显示缓冲区中仍在等待的任何输出。 关键点 缓冲输出的反面是无缓冲输出。对于无缓冲输出每个单独的输出请求都直接发送到输出设备。 将数据写入缓冲区通常很快而将数据批处理传输到输出设备相对较慢。缓冲可以最大程度地减少在存在多个输出请求时需要执行的慢速传输数从而显著提高性能。 2.1.5 std::endl与\n 使用std::endl可能有点低效因为它实际上执行两项工作将光标移动到控制台的下一行并刷新缓冲区。将文本写入控制台时我们通常不需要刷新每行末尾的缓冲区。让系统定期自行冲洗会更有效它被设计为这样有效地做。 因此通常首选使用“\n”字符。“\n”字符将光标移动到控制台的下一行但不请求刷新因此它通常会执行得更好。“\n”字符也更简洁因为它既短又可以嵌入到现有文本中。 下面是以两种不同方式使用“\n”的示例 #include iostreamint main() {int x{ 5 };std::cout x is equal to: x \n; // 独立使用\nstd::cout And thats all, folks!\n; // 使用嵌入到双引号文本中的\n(注意这样使用时没有单引号)return 0; }这将打印 x is equal to: 5 And thats all, folks!当’\n’单独用于将光标移动到控制台的下一行时它应该用单引号引起来。当嵌入到已用双引号引号的文本中时不需要其他引号。 最佳实践 将文本输出到控制台时选择“\n”而不是std::endl。 警告 \n’使用反斜杠与C中的所有特殊字符一样而不是正斜杠。改用正斜杠例如“/n”可能会导致意外错误。 2.1.6 std::cin std::cin是iostream库中定义的另一个预定义变量。而使用插入运算符将数据打印到控制台代表“字符输入”使用提取运算符从键盘读取输入。std::cin输入必须存储在要使用的变量中。 #include iostream // 为了使用 std::cout 和 std::cinint main() {std::cout Enter a number: ; // 向用户询问一个数int x{ }; // 定义整形变量x来保存用户输入将其初始化为0std::cin x; // 从键盘上获取数字并存储在变量x中std::cout You entered x \n;return 0; }尝试编译此程序并自己运行它。运行程序时第5行将打印“Enter a number: ”。当代码到达第8行时您的程序将等待您输入输入。输入数字然后按回车键后您输入的数字将被分配给变量x。最后在第10行程序将打印“You entered”后跟您刚刚输入的数字。 例如我输入了 4 Enter a number: 4 You entered 4这是一种从用户那里获取键盘输入的简单方法我们将在以后的许多示例中使用它。请注意接受输入时不需要使用“\n”因为用户需要按下Enter键才能接受其输入这会将光标移动到控制台的下一行。 就像可以在一行中输出多位文本一样也可以在一行中输入多个值 #include iostreamint main() {std::cout Enter two numbers separated by a space: ;int x{ }; // 定义变量x来保存用户输入将其初始化为零int y{ }; // 定义变量y来保存用户输入将其初始化为零std::cin x y; // 得到两个数字分别存储在变量x和y中std::cout You entered x and y \n;return 0; }这将产生输出 Enter two numbers separated by a space: 5 6 You entered 5 and 62.1.7 总结 新程序员经常混淆std::cin、std::cout、插入运算符和提取运算符。这里有一个简单的记忆方法 std::cin 和 std::cout 始终位于语句的左侧。std::cout 用于输出值cout 字符输出std::cin 用于获取输入值cin 字符输入 与 std::cout 一起使用并显示数据的移动方向如果 std::cout 表示控制台则输出数据从变量移动到控制台。 std::cout 4 将值 4 移动到控制台 与 std::cin 一起使用并显示数据的移动方向如果 std::cin 表示键盘则输入数据从键盘移动到变量。 std::cin x 将用户从键盘输入的值移动到 x 中 2.1.8 练习时间 练习1 考虑我们上面使用的以下程序 #include iostreamint main() {std::cout Enter a number: ;int x{};std::cin x;std::cout You entered x \n;return 0; }程序希望您输入一个整数值因为用户输入的变量x是一个整数变量。 多次运行此程序并描述输入以下类型的输入时会发生什么情况 一个字母例如h带有小数分量的数字。尝试小数部分小于0.5和大于0.5的数字例如3.2和3.7。一个小的负整数如-3一个词例如Hello一个非常大的数字至少30亿一个小数字后跟一些字母例如123abc 2.2 未初始化的变量和未定义的行为 2.2.1 未初始化的变量 与某些编程语言不同C/C不会自动将大多数变量初始化为给定值如0。因此当一个变量被赋予一个用于存储数据的内存地址时该变量的默认值恰好已经存在于该内存地址中的那个垃圾值没有被赋予已知值通常通过初始化或赋值的变量称为未初始化变量。 拓展 许多读者期望术语“初始化”和“未初始化”是严格的对立但事实并非如此初始化意味着在定义时为对象提供了初始值。未初始化意味着对象尚未被赋予已知值通过任何方式包括赋值。因此一个没有初始化但后来被赋值的对象不再是未初始化的因为它已经被赋予了一个已知的值。 回顾一下 初始化 -- 对象在定义时被赋予一个已知值。赋值 -- 对象被赋予一个超出定义点的已知值。未初始化 -- 对象尚未被赋予已知值。 拓展 缺乏初始化是从C继承来的性能优化当时计算机速度很慢。想象一下你要从一个文件中读入100000个值。在这种情况下您可以创建100000个变量然后用文件中的数据填充它们。 如果C在创建时用默认值初始化所有这些变量这将导致100000次初始化很慢并且几乎没有好处因为无论如何都要覆盖这些值。 现在您应该始终初始化变量因为这样做的成本与收益相比微不足道。一旦您对语言更加熟悉可能会在某些情况下出于优化目的而省略初始化。但这应该始终是有选择性和有意识的。 使用未初始化变量的值可能会导致意外结果。考虑以下简短程序 #include iostreamint main() {// 定义整形变量xint x; // 这个变量是未初始化的因为我们没有给它赋予已知值// 将x的值打印到屏幕std::cout x \n; // 谁知道我们会获得什么呢因为我们没有给它赋值return 0; }在这种情况下计算机会将一些未使用的内存分配给x。然后它将内存位置的值发送到std::cout后者将打印该值输出为整数。但是它会打印什么值呢答案是“谁知道呢”每次运行程序时答案可能会也可能不会改变。当作者在Visual Studio中运行这个程序时std::cout一次打印值7177728 下一次打印值5277592 。您可以自己编译并运行该程序您的计算机不会爆炸。 警告 当您使用调试生成配置时某些编译器如VisualStudio会将内存内容初始化为某个预设值。使用发布构建配置时不会发生这种情况。因此如果你想自己运行上面的程序请确保你使用的是发布版本配置。例如如果您在Visual Studio调试配置中运行上述程序它将始终打印-858993460因为这是Visual Studio在调试配置中初始化内存的值输出为整数。 大多数现代编译器将尝试检测是否在未给定值的情况下使用变量。如果他们能够检测到这一点他们通常会发出编译时警告或错误。例如在Visual Studio上编译上述程序会产生以下警告 warning C4700: uninitialized local variable x used如果你的编译器不允许你编译和运行上面的程序例如因为它将此问题视为错误以下是解决此问题的可能解决方案 #include iostreamvoid doNothing(int) // 现在不要担心是什么我们只是用它来欺骗编译器认为使用了变量x { }int main() {// 定义整形变量xint x; // 变量是未初始化的doNothing(x); // 让编译器认为我们在给这个变量赋值// 将x的值打印到屏幕上谁知道我们会得到什么因为x没有初始化std::cout x \n;return 0; }使用未初始化的变量是新手程序员最常犯的错误之一不幸的是它也可能是调试最具挑战性的错误之一因为如果未初始化的变量碰巧被分配到内存中具有合理值的位置例如0程序可能会运行得很好。 这是最佳实践“始终初始化变量”的主要原因。 2.2.2 未定义行为 使用未初始化变量的值是我们第一个未定义行为的例子。未定义行为Undefined behavior通常缩写为UB是执行C语言未定义行为的代码的结果。在这种情况下C语言没有任何规则来确定如果使用尚未给定已知值的变量的值会发生什么。因此如果你真的这样做将导致未定义的行为。 实现未定义行为的代码可能会出现以下症状 程序每次运行都会产生不同的结果。你的程序总是产生同样的错误结果。你的程序行为不一致有时产生正确的结果有时不。你的程序看起来像是在工作但是在程序的后面产生了不正确的结果。你的程序崩溃了要么立即崩溃要么稍后崩溃。你的程序可以在某些编译器上工作但在其他编译器上不行。你的程序可以正常工作直到你改变了其他一些看似无关的代码。 或者您的代码实际上可能会产生正确的行为。 C包含许多情况如果你不小心可能会导致未定义的行为。注意这些情况并确保避免它们。 规则 注意避免所有导致未定义行为的情况例如使用未初始化的变量。 2.2.3 明确定义的行为和不明确定义的行为 明确定义的行为意味着一些语法的行为留给实现编译器来定义。这样的行为必须是一致的并且有文档记录的但是不同的编译器可能会产生不同的结果。 让我们看一个实现定义的行为的简单示例 #include iostreamint main() {std::cout sizeof(int); // 打印一个int变量占用多少字节的内存return 0; }在大多数编译器上这将产生4 但在其他编译器上它可能会产生2 。 未明确定义的行为与明确定义的行为几乎相同因为行为由实现决定但不要求实现记录行为。 我们通常希望避免实现定义的和未指定的行为因为这意味着如果在不同的编译器上编译我们的程序可能无法按预期工作甚至如果我们更改影响实现行为的项目设置则在同一编译器上编译 最佳实践 尽可能避免实现定义的和未指定的行为因为它们可能导致程序在其他实现上出现故障。 2.2.4 练习时间 练习2 什么是未初始化的变量为什么要避免使用它们 练习3 什么是未定义的行为如果你做了一些表现出未定义行为的事情会发生什么 2.3 关键字和命名标识符 2.3.1 关键字 C保留了92个关键字从C23开始供己使用。这些词称为关键字或保留字每个关键字在C语言中都有特殊的含义。 以下是所有C关键字的列表到C23 -12341alignasalignofandand_eq2asmautobitandbitor3boolbreakcasecatch4charchar8_t (C20起)char16_tchar32_t5classcomplconcept (C20起)const6consteval (C20起)constexprconstinit (C20起)const_cast7continueco_await (C20起)co_return (C20起)co_yield (C20起)8decltypedefaultdeletedo9doubledynamic_castelseenum10explicitexportexternfalse11floatforfriendgoto12ifinlineintlong13mutablenamespacenewnoexcept14notnot_eqnullptroperator15oror_eqprivateprotected16publicregisterreinterpret_castrequires (C20起)17shortsignedsizeofstatic18static_caststructswitchtemplate19thread_localthrowtruetry20typeidtypenameunionunsigned21virtualvoidvolatilewchar_t22whilexorxor_eq 标记了“C20起”的关键字是在在C20中添加的。如果您的编译器不兼容C20或者具有C20功能但默认情况下关闭则这些关键字可能不起作用。 C还定义了特殊标识符override、final、import和module。这些在某些上下文中使用时具有特定含义但在其他情况下不保留。 您已经遇到了其中的一些关键字包括int和return。沿着一组运算符这些关键字和特殊标识符定义了整个C语言预处理器命令除外。由于关键字和特殊标识符具有特殊的含义IDE可能会更改这些单词的文本颜色使它们从其他标识符中脱颖而出。 2.3.2 标识符命名规则 变量或函数类型或其他类型的项的名称称为标识符。C有着很大的灵活性可以根据你的意愿命名标识符。但是在命名标识符时必须遵循以下几条规则 标识符不能是关键字。标识符只能由字母小写或大写、数字和下划线字符组成。这意味着标识符不能包含符号下划线除外或空格空格或制表符。标识符必须以字母小写或大写或下划线开始。不能以数字开头。C是区分大小写的。 value 不同于 Value 不同于 VALUE 。 2.3.3 标识符命名最佳实践 现在你已经知道了如何命名一个变量让我们来谈谈你应该怎样命名一个变量或函数。 首先C中的一个约定是变量名应该以小写字母开始。如果变量名是一个单词则整个内容都应该用小写字母书写。 int value; // 正规的int Value; // 非正规的应该以小写字母开头 int VALUE; // 非正规的应该以小写字母开头 int VaLuE; // 非正规的去看心理医生吧大多数情况下函数名也以小写字母开头尽管在这一点上存在一些分歧。我们将遵循这个约定因为函数main所有程序都必须有以小写字母开头就像C标准库中的所有函数一样。 以大写字母开头的标识符名称通常用于用户定义的类型例如结构、类和枚举我们将在后面介绍所有这些。 如果变量或函数名是多字的则有两种常见约定用下划线分隔的单词有时称为snake_case或用大写字母分隔的单词有时称为camelCase因为大写字母像骆驼的驼峰一样突出。 int my_variable_name; // 正规的由下划线分隔 int my_function_name(); // 正规的由下划线分隔int myVariableName; // 正规的由大写字母分隔 int myFunctionName(); // 正规的由大写字母分隔int my variable name; // 无效的不允许空格 int my function name(); // 无效的不允许空格int MyVariableName; // 非常规应该以小写字母开头 int MyFunctionName(); // 非常规应该以小写字母开头在本教程中我们通常使用第二种方法因为它更容易阅读在密集的代码块中很容易将下划线误认为空格。但两者都很常见——C标准库对变量和函数都使用下划线方法。有时你会看到两者的混合下划线用于变量大写字母用于函数。 值得注意的是如果你正在使用别人的代码通常认为与你正在使用的代码的风格相匹配比严格遵循上面列出的命名约定更好。 其次应该避免以下划线开头命名标识符因为这些名称通常是为操作系统、库和或编译器保留的。 第三你的标识符应该明确它们所持有的值意味着什么特别是如果单位不明显的话。标识符的命名方式应该能够帮助那些不知道你的代码是什么的人尽快弄清楚。长时间后当你再看你的程序时你会感谢自己选择了有意义的变量名。 然而给一个微不足道的变量起一个过于复杂的名字会妨碍对程序正在做什么的全面理解就像给一个广泛使用的标识符一个不适当的名字一样。因此一个好的经验法则是使标识符的长度与它的使用范围成正比。具有普通用途的标识符可以具有短名称例如i。更广泛使用的标识符例如从程序中的许多不同位置调用的函数应该具有更长且更具描述性的名称例如使用openFileOnDisk而不是open。 标识符好/坏原因int ccount坏“count”前的“c”代表什么int customerCount好清楚我们在计数什么int i也许如果是不重要的那么就是好的否则就是坏的int index也许如果索引知道是什么就是好的int totalScore也许如果只有一个东西的分数那就是好的否则它太模糊int _count坏不要使用下划线开头int count也许如果清楚计数的是什么那就是好的int data坏什么数据int time坏秒分还是小时int minutesElapsed好描述清楚int value1, value2也许很难区分两者int numApples好描述清楚int monstersKilled好描述清楚int x, y也许如果是不重要的那么就是好的否则就是坏的 在任何情况下避免缩写除非它们是明确的。虽然它们减少了编写代码所需的时间但它们使代码更难阅读。阅读代码的次数比编写代码的次数多你在编写代码时节省的时间是每个读者包括未来的你在阅读代码时浪费的时间。如果您希望更快地编写代码请使用编辑器的自动完成功能。 对于变量声明使用注释来描述变量的用途或解释其他可能不明显的内容是很有用的。例如假设我们声明了一个名为numberOfChars的变量它应该存储一段文本中的字符数。文本“Hello World!”有10个、11个还是12个字符这取决于我们是否包括空格或标点符号。与其命名为变量numberOfCharsIncludingWhitespaceAndPunctuation这是相当冗长的在声明行上或上方放置适当的注释应该有助于用户理解它 // 一段文本中的字符数包括空格和标点符号 int numberOfChars;2.3.4 练习时间 练习4 根据如何命名一个变量指出每个变量名是否正规或无效以及为什么。 1 int sum {}; // 假设我们求的和是显而易见的2 int _apples {};3 int VALUE {};4 int my variable name {};5 int TotalCustomers {};6 int void {};7 int numFruit {};8 int 3some {};9 int meters_of_pipe {};2.4 空白和基本格式 空白是一个术语指用于格式化的字符。在C中这主要是指空格、制表符和换行符。C中的空白通常用于3件事分隔某些语言元素、在文本内部以及用于格式化代码。 2.4.1 某些语言元素必须以空格分隔 该语言的语法要求某些元素用空格分隔。当两个关键字或标识符必须连续放置以便编译器可以区分它们时通常会出现这种情况。 例如变量声明必须用空格分隔 int x; // int 和 x 之间用空格分隔如果我们输入intx 编译器会将其解释为标识符然后抱怨它不知道标识符intx是什么。 另一个例子函数的返回类型和名称必须用空格分隔 int main(); // int 和 main 之间用空格分隔当需要空白作为分隔符时编译器不关心使用了多少空白只要存在一些空白即可。 以下变量定义均有效 int x; int y;int z;在某些情况下换行符用作分隔符。单行注释以换行符结束。 举个例子做这样的事情会让你陷入麻烦 std::cout Hello world!; // 这是注释的一部分 这不是注释的一部分预处理器指令例如#include iostream也必须放在单独的行上 #include iostream #include string2.4.2 引用的文本按字面意思使用空格的数量 在引用的文本中空格的数量是按字面意思计算的。 std::cout Hello world!;不同于 std::cout Hello world!;引用的文本中不允许有换行符 std::cout Helloworld!; // 不允许引用的文本由空白空格、制表符或换行符分隔将被连接 std::cout Hello world!; // 打印Hello world!2.4.3 使用空白来格式化代码 空白通常被忽略。这意味着我们可以在任何我们喜欢的地方使用空白来格式化代码以使其更容易阅读。 例如以下内容很难阅读 #include iostream int main(){std::coutHello world;return 0;}以下是更好的但仍然相当密集 #include iostream int main() { std::cout Hello world; return 0; }如果需要可以将语句拆分为多行 #include iostreamint main() {std::cout Hello world; // 正常工作return 0; }这对于特别长的语句很有用。 2.4.4 基本格式 与其他语言不同C不对程序员施加任何格式限制。因此我们说C是一个空白独立的语言。 这是喜忧参半的。一方面有做任何你喜欢的事情的自由是很好的。另一方面这些年来已经开发了许多不同的格式化C程序的方法你会发现有时是重要的和分散注意力的关于哪些是最好有很多分歧。我们的基本经验法则是最好的样式是生成最可读的代码并提供最大一致性的样式。 以下是我对基本格式的建议 可以使用制表符或空格进行缩进大多数IDE都有这个设置可以将制表符按下转换为适当数量的空格。函数大括号有两种可接受的样式。 Google C样式指南建议将左花括号放在与语句相同的行上 int main() { }这样做的理由是它减少了垂直空格的数量除了开始的花括号之外您不会将整行都用于其他内容因此您可以在屏幕上容纳更多的代码。屏幕上的代码越多程序就越容易理解。 但是我更喜欢常见的替代方案其中左大括号出现在自己的行上 int main() { }这增强了可读性并且不容易出错因为大括号对应该总是缩进在同一级别。如果由于大括号不匹配而出现编译器错误很容易看出错误的位置。 花括号内的每个语句都应该从它所属函数的左括号开始一个制表符。举例来说 int main() {std::cout Hello world!\n; // 一个制表符4个空格std::cout Nice to meet you.\n; // 一个制表符4个空格 }行不应该太长。通常80个字符已经成为行的最大长度的事实标准。如果一行代码需要很长它应该被分割在一个合理的点成多行。 int main() {std::cout 这是一个很长很长很长很长很长很长很长很长很长很长很长很长很长的代码\n; // 延续行的一个额外缩进std::cout 这是另一一个很长很长很长很长很长很长很长很长很长很长很长很长很长的代码\n; // 文本与上一行对齐作为延续行std::cout 这一行比较短\n; }最佳实践 考虑将行的长度控制在80个字符或更少。 如果使用操作符例如或则运算符应放在下一行的开头而不是当前行的结尾。 std::cout 3 4 5 6* 7 * 8;使用空白可以通过对齐值或注释或在代码块之间添加间距来使代码更易于阅读。 更难阅读 cost 57; pricePerItem 24; value 5; numberOfItems 17;更容易阅读 cost 57; pricePerItem 24; value 5; numberOfItems 17;更难阅读 std::cout Hello world!\n; // cout 在 iostream 库中 std::cout It is very nice to meet you!\n; // 这些注释使程序难以阅读 std::cout Yeah!\n; // 特别是不同行的时候更容易阅读 std::cout Hello world!\n; // cout 在 iostream 库中 std::cout It is very nice to meet you!\n; // 这些注释使程序更容易阅读 std::cout Yeah!\n; // 尤其是当所有行都排队的时候2.5 本章答案 练习1 x为0。小数部分被舍弃。 由于列表初始化不允许收缩转换新程序员有时会搞不清楚为什么这里允许删除分数。x的初始化发生在第6行对收缩转换的限制只适用于这一行的列表初始化。用户的输入被处理并赋给第7行的x此处此类限制不适用因为此语句不是列表初始化。正常运行。x为0。你最有可能得到的号码是2147483647。这是因为x只能容纳一定大小的数字。如果您输入的值大于x可以容纳的最大数值它将被设置为x可以容纳的最大数值可能是2147483647但在您的系统上可能有所不同。x获取数值例如123。 练习2 未初始化的变量是一个没有被程序赋予值的变量通常通过初始化或赋值。使用存储在未初始化变量中的值将导致未定义的行为。 练习3 未定义的行为是执行行为没有被语言很好定义的代码的结果。结果几乎可以是任何东西包括行为正确的东西。 练习4 1正规。 2不正规。变量名不应该以下划线开头。 3不正规。变量名应该以小写字母开头。 4无效。变量名不能包含空格。 5非正规。变量名应该以小写字母开头。 6无效。void是关键字。 7正规。 8无效。变量名不能以数字开头。 9正规。
http://wiki.neutronadmin.com/news/197521/

相关文章:

  • 如何做一份网站的数据分析网站域名一年多少钱
  • 绵阳网站推广优化建设网站是普通办公吗
  • 微擎怎么做网站学校网站建设规范
  • 深圳公司网站搭建公司微信公众号如何快速涨粉
  • 拓者设计吧网站做网站需要租服务器吗
  • 盱眙网站建设公司网站开发中为什么有两个控制层
  • 网站使用标题做路径做网站需要缴什么费用
  • jsp网站开发遇到问题区网站开发语言
  • 网站建设 微信营销郑州网站建设哪家
  • 申请一个域名可以做多少网站个人如何注册网站
  • 太原网站建设优化网站被黑 百度跳转
  • 亚马逊如何做站外促销网站网站开发在线课程
  • 123883网站长沙有什么好玩的室内场所
  • seo企业站收录网站结构优化建议
  • 东莞长安网站辽宁移动和生活app下载
  • 做网站是什么会计科目google官网入口下载
  • 建设网站客户资源从渠道来快速网站轻松排名
  • 餐饮类网站建设达到的作用app展示网站模板html
  • 学做网站论坛插件廊坊做网站费用
  • 建设网站企业运营网站开发模版
  • 做海关授权的网站自己做网站怎样挣钱
  • 访问国外的网站很慢直播视频下载
  • 营销型网站建设优势微信公众平台开发源码
  • 郑州网站推广优化报价硅云网站建设视频
  • 和动物做的网站吗公司网站怎么管理
  • 网站编辑是个长期做的工作吗网站做
  • 向网站服务器上传网页文件下载浙江建设
  • 学院网站建设的现状分析网站制作论文总结
  • 登封做网站推广广东省建设项目安全标准自评网站
  • ps做ppt模板怎么下载网站网站备案查询官网