第2章:开始学习C++

C++ 程序基本结构

C++区分大小写字符,文件扩展名为cpp。所有的语句要以英文字符分号 ;;; 结尾,不能省略。

#include <iostream>using namespace std;int main()
{cout << "Come up and C++ me some time."; // 信息   cout << endl;cout << "You won't regret it!" << endl; return 0;  // main()函数停止
}

预编译指令

#include <iostream>

该编译指令导致预处理器将iostream文件的内容添加到程序中。这是一种典型的预处理器操作。

涉及到程序与外部世界之间的通信。C++中的输入/输出方案涉及iostream中的多个定义。

头文件

iostream

每个头文件都支持一组特定的工具。用来包含程序中需要使用的函数库。

main()函数

int main() //函数头
{statemets; // 函数体return 0;
}

函数头:对函数与程序其他部分之间的接口进行了总结。

函数体:函数应做什么的计算机指令。

最后一条语句是返回语句,结束该函数。

main()函数的定义以函数头int main()开始。

位于函数名前面的部分叫做函数返回类型。

空括号意味着函数不接受任何参数,如果main()函数没有遇到返回值,那么默认是return 0 结尾。

C++程序必须包含一个名称为main()的函数。

名称空间

using namespace std

using 编译指令。名称空间支持,可以更容易的组合程序,有助于组织程序。

cout 实际上是std::cout,using 指令使得std空间中的所有名称可用。

注释

C++ 注释以双斜杠 // 打头,到行尾结束。 连续段落注释可以使用 /* 和 */

C++ 中的基本输入/输出

cin和标准输入

输入使用 cin

cin >> string

cout和标准输出

输出使用 cout

cout << "Come up and C++ me some time.";

“ ”双引号括起来的一系列字符叫做字符串, << 符号表示该语句把这个字符串发送给cout, 该符号指出了信息流动的路径。

输出是一个流, 即从程序流出的一系列字符,cout对象表示这种流,其属性是在iostream文件中定义的。<< 符号可以理解为酱一个字符串插入到输出流中。

endl 表示重启一行,endl也是在iostream中定义的,且位于名称空间std中。换行符 “\n”;

C++语句

#include <iostream>using namespace std;int main()
{int carrots;carrots = 25;cout << "I have ";cout << carrots;cout << " carrots";cout << endl;carrots = carrots - 1;cout << "Crunch, crunch. Now I have " << carrots << " carrots." << endl;return 0;
}

声明语句创建变量,赋值语句给该变量提供一个值。

声明语句

定义函数中使用的变量的名称和类型。

使用声明语句来指出存储类型并提供位置标签,

int carrots; 该语句提供了需要的内存以及该内存单元的名称。

赋值语句

使用赋值运算符(=)给变量赋值。

赋值语句将值赋给存储单元。 = 是赋值运算符。 赋值从右向左进行

变量

所有变量都必须声明,变量可以存储整数…

#include <iostream>using namespace std;int main()
{int carrots;cout << "How many carrots do you have?" << endl;cin >> carrots;cout << "Here are two more. ";carrots = carrots + 2;cout << "Now you have " << carrots << " carrots." << endl;return 0;
}

使用cin 输入, 使用cout 进行拼接。

函数

#include <iostream>
#include <cmath>
using namespace std;int main()
{double area;cout << "Enter the floor area, in square feet, of your home: "; cin >> area;double side;side = sqrt(area);cout << "That's the equivalent of a square " << side<< " feet to the side." << endl;cout << "How fascinating!" << endl;return 0;
}

函数头

#include <cmath>

原型只描述函数接口,定义中包含了函数的代码。应当在首次使用函数之前提供其原型。把原型放到main()函数定义的前面。通过cmath可以提供sqrt函数的原型。

函数的参数

括号中的值是给函数的值,以这种方式发送给函数的值叫做参数。参数是发送给函数的信息,返回值是从函数中发送回去的值。C++编译器必须知道函数的参数类型和返回值类型。

函数的返回值

函数分为有返回值的和无返回值的,有返回值的函数将生成一个值,这个值可以在其他表达式中使用。

函数的调用

执行函数。被调用的函数执行完毕后,程序返回到函数调用语句后面的语句。

表达式 sqrt() 将调用sqrt函数。这被成为函数调用,被调用的函数叫做被调用函数。 包含调用函数的函数叫做调用函数。

用户还可以自己使用自定义的函数。

#include <iostream>using namespace std;void simon(int); //函数头int main()
{simon(3); // 调用函数cout << "Pick an integer: ";int count;cin >> count;simon(count); // 调用函数cout << "Done!" << endl;return 0;
}void simon(int n)
{cout << "Simon says touch your toes " << n <<" times." << endl;
}

simon 函数没有返回值,所以不能把函数赋值给变量或者表达式。

函数格式:

type functionname(argumentlis)
{statements;
}

有返回值的函数

#include <iostream>int stonetolb(int);using namespace std;int main()
{int stone;cout << "Enter your weight of stone ";cin >> stone;int weight = stonetolb(stone);cout << stone << " stones = " << weight << " pounds." << endl;return 0;
}int stonetolb(int n)
{return 14 * n;
}

函数的全部特性:

  1. 有函数头和函数体
  2. 接受一个参数
  3. 返回一个值
  4. 需要一个原型。

C++ Primer Plus 阅读笔记一相关推荐

  1. C-C Primer Plus阅读笔记

    常用头: stdio.h string.h inttypes.h limits.h float.h 1.打印short.long.long long和unsigned #include <std ...

  2. C++Primer Plus (第六版)阅读笔记 + 源码分析【目录汇总】

    C++Primer Plus (第六版)阅读笔记 + 源码分析[第一章:预备知识] C++Primer Plus (第六版)阅读笔记 + 源码分析[第二章:开始学习C++] C++Primer Plu ...

  3. C++ Primer 第五版 第6章——函数阅读笔记及习题答案(完整,附C++代码)

    C++Primer(第五版)第6章函数的阅读笔记及课后习题答案总结,课后习题答案是自己学习写出来的,如果有误,欢迎指正 还不完整,后续会更新添加 阅读笔记 C++ Primer 第五版 第6章 6.1 ...

  4. C++ Primer Plus 6th代码阅读笔记

    C++ Primer Plus 6th代码阅读笔记 第一章没什么代码 第二章代码 carrots.cpp : cout 可以拼接输出,cin.get()接受输入 convert.cpp 函数原型放在主 ...

  5. C++ Primer Plus 学习笔记(第 4 章 复合类型)

    C++ Primer Plus 学习笔记 第 4 章 复合类型 数组 数组(array)是一种数据格式,能够存储多个同类型的值. 要创建数组,可使用声明语句.数组声明应指出以下三点: 存储在每个元素的 ...

  6. trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer

    一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...

  7. VoxelNet阅读笔记

    作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记

  8. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  9. 源码阅读笔记 BiLSTM+CRF做NER任务 流程图

    源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...

最新文章

  1. Go语言之 Struct Tag
  2. quot;正统quot;函数式编程 两个规则
  3. python的编程模式-实例讲解Python设计模式编程之工厂方法模式的使用
  4. LeetCode-77-Combinations
  5. 100~200之间的素数(及其四个优化方案)
  6. 数据结构(四)之单链表查找中间结点
  7. LSSS线性秘密共享方案详细构造方法与原理解释
  8. SpringCloud - Gateway 的使用
  9. java 学习第三篇if判断
  10. 大学生必犯的N大错误(开篇)
  11. windows电脑桌面旋转快捷键
  12. python批量裁剪图片_python实现图片批量剪切示例
  13. 计算机老出现安全警报怎么办,windows安全警报怎么关闭,教您怎么关闭windows安全警报...
  14. 服务器是计算机硬件嘛,什么是服务器,服务器是软件还是硬件?
  15. 电子书 UNIX环境高级编程(第3版).pdf
  16. segmentation_models.pytorch实战:使用segmentation_models.pytorch图像分割框架实现对人物的抠图
  17. 手把手QQ机器人制作教程,根据官方接口进行开发,基于Python语言制作的详细教程(更新中)
  18. Excel也能制作电子印章,你见过吗?学会了职场不求人
  19. 渗透测试之突破口——web服务突破
  20. 基于纹理的印章识别分离——发票识别之一

热门文章

  1. 程序如何实现可扩展性
  2. Python脚本定时发送微信文件
  3. 野火i.MX6ULL Pro开发板U-Boot移植
  4. 踩雷1:Android Studio:3dmap 隐私合规校验失败: errorcode 555570 确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow、updateP
  5. 母亲节到了,用Python给老妈写个祝福小程序~
  6. shineblink 倾倒传感器详解
  7. Floyd - Warshall(弗洛伊德算法)
  8. 如果流浪地球,信息科学能做什么
  9. 西南科技大学数电FPGA第一次实验报告
  10. 软件产品案例分析——福州大学微信小程序