C++ Primer Plus 阅读笔记一
第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;
}
函数的全部特性:
- 有函数头和函数体
- 接受一个参数
- 返回一个值
- 需要一个原型。
C++ Primer Plus 阅读笔记一相关推荐
- C-C Primer Plus阅读笔记
常用头: stdio.h string.h inttypes.h limits.h float.h 1.打印short.long.long long和unsigned #include <std ...
- C++Primer Plus (第六版)阅读笔记 + 源码分析【目录汇总】
C++Primer Plus (第六版)阅读笔记 + 源码分析[第一章:预备知识] C++Primer Plus (第六版)阅读笔记 + 源码分析[第二章:开始学习C++] C++Primer Plu ...
- C++ Primer 第五版 第6章——函数阅读笔记及习题答案(完整,附C++代码)
C++Primer(第五版)第6章函数的阅读笔记及课后习题答案总结,课后习题答案是自己学习写出来的,如果有误,欢迎指正 还不完整,后续会更新添加 阅读笔记 C++ Primer 第五版 第6章 6.1 ...
- C++ Primer Plus 6th代码阅读笔记
C++ Primer Plus 6th代码阅读笔记 第一章没什么代码 第二章代码 carrots.cpp : cout 可以拼接输出,cin.get()接受输入 convert.cpp 函数原型放在主 ...
- C++ Primer Plus 学习笔记(第 4 章 复合类型)
C++ Primer Plus 学习笔记 第 4 章 复合类型 数组 数组(array)是一种数据格式,能够存储多个同类型的值. 要创建数组,可使用声明语句.数组声明应指出以下三点: 存储在每个元素的 ...
- trainer setup_Detectron2源码阅读笔记-(一)Configamp;Trainer
一.代码结构概览 1.核心部分 configs:储存各种网络的yaml配置文件 datasets:存放数据集的地方 detectron2:运行代码的核心组件 tools:提供了运行代码的入口以及一切可 ...
- VoxelNet阅读笔记
作者:Tom Hardy Date:2020-02-11 来源:VoxelNet阅读笔记
- Transformers包tokenizer.encode()方法源码阅读笔记
Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode
- 源码阅读笔记 BiLSTM+CRF做NER任务 流程图
源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...
最新文章
- Go语言之 Struct Tag
- quot;正统quot;函数式编程 两个规则
- python的编程模式-实例讲解Python设计模式编程之工厂方法模式的使用
- LeetCode-77-Combinations
- 100~200之间的素数(及其四个优化方案)
- 数据结构(四)之单链表查找中间结点
- LSSS线性秘密共享方案详细构造方法与原理解释
- SpringCloud - Gateway 的使用
- java 学习第三篇if判断
- 大学生必犯的N大错误(开篇)
- windows电脑桌面旋转快捷键
- python批量裁剪图片_python实现图片批量剪切示例
- 计算机老出现安全警报怎么办,windows安全警报怎么关闭,教您怎么关闭windows安全警报...
- 服务器是计算机硬件嘛,什么是服务器,服务器是软件还是硬件?
- 电子书 UNIX环境高级编程(第3版).pdf
- segmentation_models.pytorch实战:使用segmentation_models.pytorch图像分割框架实现对人物的抠图
- 手把手QQ机器人制作教程,根据官方接口进行开发,基于Python语言制作的详细教程(更新中)
- Excel也能制作电子印章,你见过吗?学会了职场不求人
- 渗透测试之突破口——web服务突破
- 基于纹理的印章识别分离——发票识别之一