C++基础实例教程.pdf
《C++基础实例教程.pdf》由会员分享,可在线阅读,更多相关《C++基础实例教程.pdf(170页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1.1 C+程 序 结 构(Structure of a program)下 面 我 们 从 一 个 最 简 单 的 程 序 入 手 看 一 个 C+程 序 的 组 成 结 构。/my first program in C+Hello World!#include using namespace std;int main()cout uHello World!w;return 0;上 面 左 侧 显 示 了 我 们 的 第 一 个 程 序 的 源 代 码,代 码 文 件 名 称 为 hellowworld.cpp。右 边 显 示 了 程 序 被 编 译 执 行 后 的 输 出 结 果。编 辑
2、和 编 译 一 个 程 序 的 方 法 取 决 于 你 用 的 是 什 么 编 译 器,根 据 它 是 否 有 图 形 化 的 界 面 及 版 本 的 不 同,编 译 方 法 也 有 可 能 不 同,具 体 请 参 照 你 所 使 用 的 编 译 器 的 使 用 说 明。以 上 程 序 是 多 数 初 学 者 学 会 写 的 第 一 个 程 序,它 的 运 行 结 果 是 在 屏 幕 上 打 出 HelloWorld!”这 句 话。虽 然 它 可 能 是 C+可 写 出 的 最 简 单 的 程 序 之 一,但 其 中 已 经 包 含 了 每 一 个 C+程 序 的 基 本 组 成 结 构。下
3、面 我 们 就 逐 个 分 析 其 组 成 结 构 的 每 一 部 分:/my first program in C+这 是 注 释 行。所 有 以 两 个 斜 线 符 号()开 始 的 程 序 行 都 被 认 为 是 注 释 行,这 些 注 释 行 是 程 序 员 写 在 程 序 源 代 码 内,用 来 对 程 序 作 简 单 解 释 或 描 述 的,对 程 序 本 身 的 运 行 不 会 产 生 影 响。在 本 例 中,这 行 注 释 对 本 程 序 是 什 么 做 了 一 个 简 要 的 描 述。#include 以#标 志 开 始 的 句 子 是 预 处 理 器 的 指 示 语 句。它
4、 们 不 是 可 执 行 代 码,只 是 对 编 译 器 作 出 指 示。在 本 例 中 这 个 句 子#include 告 诉 编 译 器 的 预 处 理 器 将 输 入 输 出 流 的 标 准 头 文 件(iostream,h)包 括 在 本 程 序 中。这 个 头 文 件 包 括 了 C+中 定 义 的 基 本 标 准 输 入-输 出 程 序 库 的 声 明。此 处 它 被 包 括 进 来 是 因 为 在 本 程 序 的 后 面 部 分 中 将 用 到 它 的 功 能。using namespace std;C+标 准 函 数 库 的 所 有 元 素 都 被 声 明 在 一 个 名 空
5、间 中,这 就 是 std名 空 间。因 此 为 了 能 够 访 问 它 的 功 能,我 们 用 这 条 语 句 来 表 达 我 们 将 使 用 标 准 名 空 间 中 定 义 的 元 素。这 条 语 句 在 使 用 标 准 函 数 库 的 C+程 序 中 频 繁 出 现,本 教 程 中 大 部 分 代 码 例 子 中 也 将 用 到 它。int main()这 一 行 为 主 函 数(main function)的 起 始 声 明。main function是 所 有 C+程 序 的 运 行 的 起 始 点。不 管 它 是 在 代 码 的 开 头,结 尾 还 是 中 间-此 函 数 中 的
6、代 码 总 是 在 程 序 开 始 运 行 时 第 一 个 被 执 行。并 且,由 于 同 样 的 原 因,所 有 C+程 序 都 必 须 有 一 个 main function。main后 面 跟 了 一 对 圆 括 号(),表 示 它 是 一 个 函 数。C+中 所 有 函 数 都 跟 有 一 对 圆 括 号(),括 号 中 可 以 有 一 些 输 入 参 数。如 例 题 中 显 示,主 函 数(main function)的 内 容 紧 跟 在 它 的 声 明 之 后,由 花 括 号()括 起 来。cout 4Hellow World!55;这 个 语 句 在 本 程 序 中 最 重 要
7、。cout是 C+中 的 标 准 输 出 流(通 常 为 控 制 台,即 屏 幕),这 句 话 把 一 串 字 符 串(本 例 中 为“Heilo World)插 入 输 出 流(控 制 台 输 出)中。cout在 的 声 明 在 头 文 件 iostream.h中,所 以 要 想 使 用 cout必 须 将 该 头 文 件 包 括 在 程 序 开 始 处。注 意 这 个 句 子 以 分 号(;)结 尾。分 号 标 示 了 一 个 语 句 的 结 束,C+的 每 一 个 语 句 都 必 须 以 分 号 结 尾。(C+程 序 员 最 常 犯 的 错 误 之 一 就 是 忘 记 在 语 句 末 尾
8、 写 上 分 号)。return 0;返 回 语 句(return)引 起 主 函 数 main。执 行 结 束,并 将 该 语 句 后 面 所 跟 代 码(在 本 例 中 为 0)返 回。这 是 在 程 序 执 行 没 有 出 现 任 何 错 误 的 情 况 下 最 常 见 的 程 序 结 束 方 式。在 后 面 的 例 子 中 你 会 看 到 所 有 C+程 序 都 以 类 似 的 语 句 结 束。你 可 能 注 意 到 并 不 是 程 序 中 的 所 有 的 行 都 会 被 执 行。程 序 中 可 以 有 注 释 行(以 开 头),有 编 译 器 预 处 理 器 的 指 示 行(以#开
9、头),然 后 有 函 数 的 声 明(本 例 中 main函 数),最 后 是 程 序 语 句(例 如 调 用 cout),最 后 这 些 语 句 行 全 部 被 括 在 主 函 数 的 花 括 号()内 本 例 中 程 序 被 写 在 不 同 的 行 中 以 方 便 阅 读。其 实 这 并 不 是 必 须 的。例 如,以 下 程 序 int main()(cout”Hello Worldreturn 0;)也 可 以 被 写 成:int main()cout Hello World return 0;以 上 两 段 程 序 是 完 全 相 同 的。在 C+中,语 句 的 分 隔 是 以 分
10、号(;)为 分 隔 符 的。分 行 写 代 码 只 是 为 了 更 方 便 人 阅 读。以 下 程 序 包 含 更 多 的 语 句:/my second program in C+Hello World!Im a C+program#include int main()cout Hello World!;cout Im a C+program”;return 0;在 这 个 例 子 中,我 们 在 两 个 不 同 的 语 句 中 调 用 了 cout 函 数 两 次。再 一 次 说 明 分 行 写 程 序 代 码 只 是 为 了 我 们 阅 读 方 便,因 为 这 个 main函 数 也 可
11、以 被 写 为 以 下 形 式 而 没 有 任 何 问 题:int main()cout”Hello World!cout Im to C+program return0;为 方 便 起 见,我 们 也 可 以 把 代 码 分 为 更 多 的 行 来 写:int main()(cout Hello World!”;cout Im a C+program;return 0;)它 的 运 行 结 果 将 和 上 面 的 例 子 完 全 一 样。这 个 规 则 对 预 处 理 器 指 示 行(以#号 开 始 的 行)并 不 适 用,因 为 它 们 并 不 是 真 正 的 语 句。它 们 由 预 处
12、理 器 读 取 并 忽 略,并 不 会 生 成 任 何 代 码。因 此 他 们 每 一 个 必 须 单 独 成 行,末 尾 不 需 要 分 号(;)注 释(Comments)注 释(comments)是 源 代 码 的 一 部 分,但 它 们 会 被 编 译 器 忽 略。它 们 不 会 生 成 任 何 执 行 代 码。使 用 注 释 的 目 的 只 是 使 程 序 员 可 以 在 源 程 序 中 插 入 一 些 说 明 解 释 性 的 内 容。C+支 持 两 中 插 入 注 释 的 方 法:/line comment/*block comment*/第 一 种 方 法 为 行 注 释,它 告
13、诉 编 译 器 忽 略 从 开 始 至 本 行 结 束 的 任 何 内 容。第 二 种 为 块 注 释(段 注 释),告 诉 编 译 器 忽 略 在/*符 号 和*/符 号 之 间 的 所 有 内 容,可 能 包 含 多 行 内 容。在 以 下 我 们 的 第 二 个 程 序 中,我 们 插 入 了 更 多 的 注 释。/*my second program in C+with more comments*/#include Hello World!Im a C+programint main()(cout Hello World!;/says Hello World!cout Im a C+
14、program;/says Im a C+programreturn 0;如 果 你 在 源 程 序 中 插 入 了 注 释 而 没 有 用 符 号 或/*和*/符 号,编 译 器 会 把 它 们 当 成 C+的 语 句,那 么 在 编 译 时 就 会 出 现 一 个 或 多 个 错 误 信 息。1.2 变 量 和 数 据 类 型(Variables and Data types)你 可 能 觉 得 这 个“Hellow World程 序 用 处 不 大。我 们 写 了 好 儿 行 代 码,编 译,然 后 执 行 生 成 的 程 序 只 是 为 了 在 屏 幕 上 看 到 一 句 话。的 确,
15、我 们 直 接 在 屏 幕 上 打 出 这 句 话 会 更 快。但 是 编 程 并 不 仅 限 于 在 屏 幕 上 打 出 文 字 这 么 简 单 的 工 作。为 了 能 够 进 一 步 写 出 可 以 执 行 更 有 用 的 任 务 的 程 序,我 们 需 要 引 入 变 量(variable)这 个 的 概 念。让 我 们 设 想 这 样 一 个 例 子,我 要 求 你 在 脑 子 里 记 住 5这 个 数 字,然 后 再 记 住 2 这 个 数 字。你 已 经 存 储 了 两 个 数 值 在 你 的 记 忆 里。现 在 我 要 求 你 在 我 说 的 第 一 个 数 值 上 加 1,你
16、应 该 保 留 6(即 5+1)和 2 在 你 的 记 忆 里。现 在 如 果 我 们 将 两 数 相 减 可 以 得 到 结 果 4。所 有 这 些 你 在 脑 子 里 做 的 事 情 与 计 算 机 用 两 个 变 量 可 以 做 的 事 情 非 常 相 似。同 样 的 处 理 过 程 用 C+来 表 示 可 以 写 成 下 面 一 段 代 码:a=5;b=2;a=a+1;result=a-b;很 明 显 这 是 一 个 很 简 单 的 例 子,因 为 我 们 只 用 了 两 个 小 的 整 数 数 值。但 是 想 一 想 你 的 电 脑 可 以 同 时 存 储 成 千 上 万 这 样 的
17、 数 值,并 进 行 复 杂 的 数 学 运 算。因 此,我 们 可 以 将 变 量(variable)定 义 为 内 存 的 一 部 分,用 以 存 储 一 个 确 定 的 值。每 一 个 变 量(variable)需 要 一 个 标 识,以 便 将 它 与 其 他 变 量 相 区 别,例 如,在 前 面 的 代 码 中,变 量 标 识 是 a,b,和 result。我 们 可 以 给 变 量 起 任 何 名 字,只 要 它 们 是 有 效 的 标 识 符。标 识(Identifiers)有 效 标 识 由 字 母(letter),数 字(digits)和 下 划 线(_)组 成。标 识 的
18、 长 度 没 有 限 制,但 是 有 些 编 译 器 只 取 前 32个 字 符(剩 下 的 字 符 会 被 忽 底)。空 格(spaces),标 点(punctuation marks)和 符 号(symbols)都 不 可 以 出 现 在 标 识 中。只 有 字 母(letters),数 字(digits)和 下 划 线(_)是 合 法 的。并 且 变 量 标 识 必 须 以 字 母 开 头。标 识 也 可 能 以 下 划 线(_)开 头,但 这 种 标 识 通 常 是 保 留 给 为 外 部 连 接 用 的。标 识 不 可 以 以 数 字 开 头。必 须 注 意 的 另 一 条 规 则
19、是 当 你 给 变 量 起 名 字 时 不 可 以 和 C+语 言 的 关 键 字 或 你 所 使 用 的 编 译 器 的 特 殊 关 键 字 同 名,因 为 这 样 与 这 些 关 键 字 产 生 混 淆。例 如,以 下 列 出 标 准 保 留 关 键 字,他 们 不 允 许 被 用 作 变 量 标 识 名 称:asm,auto,bool,break,case,catch,char,class,const,const_cast,continue,default,delete,do,double,dynamic_cast,else,enum,explicit,extern,false,floa
20、t,for,friend,goto,if,inline,int,long,mutable,namespace,new,operator,private,protected,public,register,reinterpret_cast,return,short,signed,sizeof,static,static_cast,struct,switch,template,this,throw,true,try,typedef,typeid,typename,union,unsigned,using,virtual,void,volatile,wchar_t,while另 外,不 要 使 用
21、一 些 操 作 符 的 替 代 表 示 作 为 变 量 标 识,因 为 在 某 些 环 境 中 它 们 可 能 被 用 作 保 留 词:and,and_eq,bitand,bitor,compl,not,not_eq,or,or_eq,xor,xor_eq你 的 编 译 器 还 可 能 包 含 一 些 特 殊 保 留 词,例 如 许 多 生 成 16位 码 的 编 译 器(比 如 一 些 DOS编 译 器)把 far,huge和 near也 作 为 关 键 字。非 常 重 要:C+语 言 是“大 小 写 敏 感”(“case sensitive)的,即 同 样 的 名 字 字 母 大 小 写
22、不 同 代 表 不 同 的 变 量 标 识。因 此,例 如 变 量 RESULT,变 量 result和 变 量 Result分 别 表 示 三 个 不 同 的 变 量 标 识.基 本 数 据 类 型(Fundamental Data types)编 程 时 我 们 将 变 量 存 储 在 计 算 机 的 内 存 中,但 是 计 算 机 要 知 道 我 们 要 用 这 些 变 量 存 储 什 么 样 的 值,因 为 一 个 简 单 的 数 值,一 个 字 符,或 一 个 巨 大 的 数 值 在 内 存 所 占 用 的 空 间 是 不 一 样 的。计 算 机 的 内 存 是 以 字 节(byte
23、)为 单 位 组 织 的。一 个 字 节(byte)是 我 们 在 C+中 能 够 操 作 的 最 小 的 内 存 单 位。一 个 字 节(byte)可 以 存 储 相 对 较 小 数 据:一 个 单 个 的 字 符 或 一 个 小 整 数(通 常 为 一 个 0 到 255之 间 的 整 数)。但 是 计 算 机 可 以 同 时 操 作 处 理 由 多 个 字 节 组 成 复 杂 数 据 类 型,比 如 长 整 数(long integers)和 小 数(decimals)。以 下 列 表 总 结 了 现 有 的 C+基 本 数 据 类 型,以 及 每 一 类 型 所 能 存 储 的 数 据
24、 范 围:数 据 类 型(DATA TYPES)名 称 字 节 数*描 述 范 围*char 1字 符(character)或 整 数(integer),8 位(bits)长 有 符 号(signed):-128 到 127无 符 号(unsigned):0 到 255short int(short)2 短 整 数(integer)16 位(bits)长 有 符 号(signed):-32768 到 32767无 符 号(unsigned):0 到 65535long int(long)4 长 整 数(integer)32 位(bits)长 有 符 号(signed):-2147483648到
25、 2147483647无 符 号(unsigned):0 到 4294967295int 4 整 数(integer)有 符 号(signed):-2147483648到 2147483647无 符 号(unsigned):0 到 4294967295float 4 浮 点 数(floating point number)3.4e+/-38(7 个 数 字(7digits)double 8双 精 度 浮 点 数(double precisionfloating point number)1.7e+/-308(15 digits)longdouble8长 双 精 度 浮 点 数(long dou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 基础 实例教程
限制150内