《C++ Primer Plus》:开始学习C++

本文同时发布在我的个人博客上: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对象属性包括<<,它可以将右侧信息插入到流中。

  1. endl
    endl是一个特殊C++符号,重启一行。

  2. 换行符
    旧式方法:\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都是智能对象,能够根据程序上下文自动将信息从一种形式转化为另一种形式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352