第二章 开始学习c++

点点圈 提交于 2020-02-17 15:10:16

第二章 开始学习c++

2.1 进入c++

2.1.1 基本知识

1.c++对大小写敏感,区分大小写
2.c语言使用printf(),scanf()等输入输出,c++可以使用,但需包含stdio.h头文件。
3. #include:预处理器编译指令
int main():函数头
using namespace:编译指令

2.1.2 main() 函数

1.c++句法要求main() 函数的定义以函数头int main() 开始
c++函数可被其他函数激活和调用,函数头描述了函数与调用它的函数之间的接口。
位于函数名前面的部分叫做函数返回类型,它描述的是从函数返回给调用它的函数的信息,函数名后括号中的部分叫做形参列表;他描述的是从调用函数传递给被调用的函数的信息。

通常,main()被启动代码调用,而启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。事实上,该函数头描述的是main()和操作系统之间的接口

main()函数可以给调用它的函数返回一个整数值,且不从调用它的函数哪里获得任何信息。

2.main() 函数若无返回语句,则默认为return 0;
c++程序必须包含一个名为main() 的函数

2.1.3 c++预处理器和iostream文件

c++程序使用输入输出工具,要使用这样两行代码
#include
using namespace std;

c++使用一个预处理器,在该程序进行主编译之前对源文件进行处理,他处理以#开头的编译指令 不必执行任何特殊的操作来调用该预处理器,它会在编译程序时自动运行。
例** #include**
该编译指令导致预处理器将iostream文件的内容添加到程序中。这是一种典型的预处理器操作,在源代码被编译前,替换或添加文本。iostream中的内容将取代程序中的代码行#include.原始文件没有被修改,而是将源代码文件和iostrea## 标题m组合成一个复合文件,编译的下一阶段将使用该文件。

2.1.4 头文件名

c++头文件不使用任何扩展名
c语言头文件以 .h 结尾
转换后的c:加上前缀c,没有扩展名 例cmath

2.1.5 名称空间(c++的一项特性)

如果使用iostream,而不是iostream.h,则应使用下面的名称空间来编译指令来使iostream中的定义对程序可用
using namespace std;
using 编译指令

类、函数和变量是c++编译器的标准组件,他们现在都被放置在名称空间std中。仅当头文件中没有扩展名h时,情况才是如此。
这意味着iostream中定义的用于输出的cout变量实际上是std::cout,而endl实际上是std::endl。因此可以省略编译指令using,以下述方式进行编码

std::cout<<"Come up and c++ me some time";
std::cout<<std::endl;

2.1.6 使用cout 进行c++输出

cout<<"Come up and c++ me some time";

在c++中,用双引号括起的一系列字符叫做字符串,由若干字符组合而成。
cout是一个预定义的对象(暂时不必了解)
从概念上看,输出是一个流,即从程序流出的一系列字符。cout对象表示这种流,其属性是在iostream文件中定义的。cout的对象属性包括一个插入运算符(<<),它可以将右侧的信息插入到流中

cout:对象
<<:插入运算符
字符串:被插入到输出流中的字符串

  1. 控制符endl
    表示从起一行
  2. 换行符
    c语言符号\n

2.2 c++语句

2.2.1 声明语句

int  max;//max是变量

变量必须声明,声明通常指出了要存储的数据类型和程序对存储在这里的数据使用的名称

2.2.2 赋值语句

==“=”==赋值运算符,将值赋值给变量

2.3 其他c++语句

2.4 函数

c++函数分为两种,有返回值的和没有返回值的函数

2.4.1 有返回值的函数

有返回值的函数将生成一个值,而这个值可赋值给变量或在其他表达式中使用。
例 x=sqrt(6.25);

double sqrt(double);//函数原型
第一个double表示返回一个double型数据,第二个double表示函数需要一个double型的参数

c++程序应当为程序中使用的每个函数提供原型(函数声明)
函数原型之于函数就像变量声明之于变量——指出涉及的类型。
c++将库函数的这两项特性(函数原型和函数定义)分开了,库文件中包含了函数的编译代码,而头文件中则包含了原型

2.4.2 用户定义的函数

c++不允许将函数定义嵌套在另一个函数定义中,每个函数定义都是独立的,所有函数的创建都是平等的

函数头 int main()
int 表明返回一个整数值,所以函数结尾要用return 0;
main()的返回值并不是返回给程序的其他部分,而是返回给操作系统。
通常的约定是,退出值为0则意味着程序运行成功,为非零则意味着存在问题。因此,如果c++程序无法打开文件,则可以将它设计为返回一个非零值。然后,便可以设计一个外壳脚本或批处理文件来运行该程序,如果该程序发出指示失败的消息,则采取其他措施

2.4.3 在多函数程序中使用using编译指令

让程序能够访问名称空间std的方法有多种,下面是其中的4种。

  1. 将using namespace std;放在函数定义之前,让文件中的所有函数能够使用名称空间std中所有的元素。
  2. 将using namespace std;放在特定的函数定义中,让该函数能够使用名称空间std中的所有元素。
  3. 在特定的函数中使用类似using std::cout;这样的编译指令,而不是using namespace std;让该函数能够使用指定的元素,如cout。
  4. 完全不使用编译指令using,而在需要使用名称空间std中的元素时,使用前缀std::,如下所示:std::cout<<“I’m using cout and endl from the std namespace”<<std::endl;

2.5 复习

1.预处理器编译指令#include 是做什么用的?
这将导致在最终的编译之前,使用iostream文件的内容替换该编译指令。
2.using namespace std;的作用?
使程序可以使用std名称空间中的定义。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!