本文同时发布在我的个人博客上:https://dragon_boy.gitee.io
hello world!程序
//Hello World!
#include <iostream>
int main()
{
using namespace std;
cout << "Hello World!" << endl;
return 0;
}
上述程序包含以下元素:
- 注释,//标识。
- 预处理器编译指令
#include
。 - 函数头
int main()
。 - 编译指令using namespace。
- 函数体,用
{}
扩起。 - 使用C++的
cout
工具显示消息的语句 。 - 结束
main()
函数的return
语句。
main()函数
int main()叫函数头,花括号中包括的部分叫函数体,显示在下图:
函数体是指函数应做什么的计算机指令。在C++中,每条完整的指令都成为语句。所有的语句都以分号结束。main()中的最后一条语句叫做返回语句,它结束该函数。
C++函数可被其它函数激活或调用,函数头描述了函数与调用它的函数之间的接口。位于函数名前面的部分叫做函数返回类型,即从函数返回给调用它的函数的信息。函数名后括号中的部分叫做形参列表,即从调用函数传递到被调用函数的信息。通常不从其它部分调用main()。
main()被启动代码调用,而启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。即该函数头描述的是main()和操作系统之间的接口。
C++预处理器和iostream文件
程序使用预处理器在进行主编译之前对源文件进行处理,不必执行任何特殊操作来调用该预处理器,它会在编译程序时自动运行。
#include <iostream>
该编译指令将让预处理器将iostream文件的内容添加到程序中。
头文件名
像iostream这样的文件叫做包含文件,或头文件。
名称空间
如果不使用传统的.h后缀的包含文件,则要使用名称空间编译指令来使iostream中的定义对程序可用:
using namespace std;
名称空间的存在意义是为了可以存在重名的元素。C++的内置相关组件存储在std名称空间中,有三种方式使用:
using namespace std; //全局使用
std::something; //单独使用
using std::something; //全局声明某一单一指令
cout进行输出
cout << "Hello World!" << endl;
双括号扩起的是要打印的信息。<<符号将该字符传给cout。cout是一个预定义的对象。
从概念上,输出一个流,即从程序流出的一系列字符,cout对象表示这种流,其属性在iostream文件中定义,cout对象属性包括<<,它可以将右侧信息插入到流中。
endl
endl是一个特殊C++符号,重启一行。换行符
旧式方法:\n
,与endl的差别是:endl确保程序继续运行前刷新输出(将其立即显示在屏幕上),而\n
不一定保证。
C++语句
C++程序是一组函数,而每个函数又是一组语句。
声明语句和变量
int carrots;
该语句提供了两项信息:需要的内存以及该内存单元的名称。
赋值语句
carrots = 25;
=
为赋值运算符,C++可以连续使用。
int a, b, c;
a = b= c = 0;
赋值从右向左进行。
其它C++语句
cin
cin >> carrots;
这条语句,信息从cin流向carrots。
cout拼接
cout可以将多个输出语句进行拼接:
cout << "I have" << carrots << "carrots" << endl;
//
cout << "I have"
<< "some carrots"
<< endl;
类
类定义描述的是数据格式及其用法,对象则是根据数据格式规范创建的实体。
int carrots;
上述代码将创建一个int类型的变量,即carrots可以存储整数,可以按特定的方式使用。cout是一个ostream对象,ostream类定义描述了对象表示的数据以及可以对它执行的操作,cin是一个istream对象。
函数
C++函数分两种: 有返回值和无返回值。
有返回值函数
如内置sqrt(),计算平方根的函数:
x = sqrt(6.25);
表达式sqrt(6.25)被称为函数调用,被调用的函数叫做被调用函数,包含函数调用的函数叫做调用函数,圆括号中的值是发送给函数的信息,即参数。函数sqrt()得到结果为2.5并将这个值发送给调用函数,这个值叫做返回值。简而言之,参数是发送给函数的信息,返回值是从函数中发送回去的值。
C++提供函数的参数类型和返回值类型的语句称为函数原型语句,应当为每个函数提供原型。sqrt()函数的原型如下:
double sqrt(double);
函数变体
有些函数需要多个参数,如pow函数:
double pow(double, double);
有些函数不需要参数,如rand:
int rand();
有些函数没有返回值:
void bucks(double);
总结
C++程序由一个或多个被称为函数的模块组成。程序从main()开始执行。函数由函数头和函数体组成,函数头指出函数的返回值的类型和函数期望通过参数传递给它的信息的类型。
有多种类型的C++语句:
- 声明语句
- 赋值语句
- 消息语句
- 函数调用
- 函数原型
- 返回语句
类是用户定义的数据类型规范,它描述了如何表示信息以及可对数据执行的操作。对象是根据类规范创建的实体。
C++提供了两个用于处理输入和输出的预定义对象,他们是istream和ostream类的实例。cin和cout都是智能对象,能够根据程序上下文自动将信息从一种形式转化为另一种形式。