数据类型运算符与表达式

上传人:san****019 文档编号:21617839 上传时间:2021-05-05 格式:PPT 页数:30 大小:596.31KB
返回 下载 相关 举报
数据类型运算符与表达式_第1页
第1页 / 共30页
数据类型运算符与表达式_第2页
第2页 / 共30页
数据类型运算符与表达式_第3页
第3页 / 共30页
点击查看更多>>
资源描述
1 第 2章 数 据 类 型 、 运 算 符 与 表 达 式2.1 程 序 设 计 概 述2.2 C语 言 的 数 据 类 型2.3 常 量 和 变 量2.4 整 型 数 据2.5 实 型 数 据2.6 字 符 型 数 据2.7 算 术 运 算 与 算 术 表 达 式2.8 赋 值 运 算 与 赋 值 表 达 式2.9 C语 言 特 有 的 运 算 和 运 算 符Return 2 2.1 程 序 设 计 概 述一 个 程 序 应 包 括 对 数 据 的 描 述 和 对 数 据 处 理 的 描 述 。 1 对 数 据 的 描 述 , 即 数 据 结 构 。 数 据 结 构 是 计 算 机 学 科 的 核 心 课程 之 一 , 有 许 多 专 门 著 作 论 述 , 本 课 程 就 不 再 赘 述 。 在 C语 言 中 , 系 统 提 供 的 数 据 结 构 , 是 以 数 据 类 型 的 形 式 出 现 的 。 2 对 数 据 处 理 的 描 述 , 即 计 算 机 算 法 。 算 法 是 为 解 决 一 个 问 题 而采 取 的 方 法 和 步 骤 , 是 程 序 的 灵 魂 。 为 此 , 著 名 计 算 机 科 学 家 沃 思( Nikiklaus Wirth) 提 出 一 个 公 式 : 数 据 结 构 + 算 法 = 程 序 实 际 上 , 一 个 程 序 除 了 数 据 结 构 和 算 法 外 , 还 必 须 使 用 一 种 计 算 机语 言 , 并 采 用 结 构 化 方 法 来 表 示 。 Return 3 2.2 C语 言 的 数 据 类 型C语 言 提 供 的 数 据 结 构 , 是 以 数 据 类 型 形 式 出 现 的 。 具 体 分 类 如 下 :1.基 本 类 型分 为 整 型 、 实 型 ( 又 称 浮 点 型 ) 、 字 符 型 和 枚 举 型 四 种 。2.构 造 类 型分 为 数 组 类 型 、 结 构 类 型 和 共 用 类 型 三 种 。3.指 针 类 型 。 在 第 9章 中 介 绍 。4.空 类 型C语 言 中 的 数 据 , 有 常 量 和 变 量 之 分 , 它 们 分 别 属 于 上 述 这 些 类 型 。本 章 将 介 绍 基 本 类 型 中 的 整 型 、 实 型 和 字 符 型 三 种 数 据 。Return 4 2.3 常 量 和 变 量2.3.1 常 量 1.常 量 的 概 念 在 程 序 运 行 过 程 中 , 其 值 不 能 被 改 变 的 量 称 为 常 量 。 2.常 量 的 分 类 ( 1) 整 型 常 量( 2) 实 型 常 量( 3) 字 符 常 量 。( 4) 符 号 常 量 。常 量 的 类 型 , 可 通 过 书 写 形 式 来 判 别 。2.3.2 变 量1.变 量 的 概 念在 程 序 运 行 过 程 中 , 其 值 可 以 被 改 变 的 量 称 为 变 量 。2.变 量 的 两 个 要 素 5 ( 1) 变 量 名 。 每 个 变 量 都 必 须 有 一 个 名 字 变 量 名 ,变 量 命 名 遵 循 标 识 符 命 名 规 则 。( 2) 变 量 值 。 在 程 序 运 行 过 程 中 , 变 量 值 存 储 在 内存 中 。 在 程 序 中 , 通 过 变 量 名 来 引 用 变 量 的 值 。 .标 识 符 命 名 规 则( 1) 有 效 字 符 : 只 能 由 字 母 、 数 字 和 下 划 线 组 成 ,且 以 字 母 或 下 划 线 开 头 。( 2) 有 效 长 度 : 随 系 统 而 异 , 但 至 少 前 个 字 符 有效 。 如 果 超 长 , 则 超 长 部 分 被 舍 弃 。例 如 , 由 于 student_name和 student_number的 前 个 字符 相 同 , 有 的 系 统 认 为 这 两 个 变 量 , 是 一 回 事 而 不 加 区别 。 在 TC V2.0中 , 变 量 名 ( 标 识 符 ) 的 有 效 长 度 为 个 字 符 , 缺 省 值 为 。 6 ( 3) C语 言 的 关 键 字 不 能 用 作 变 量 名 。注 意 : C语 言 对 英 文 字 母 的 大 小 敏 感 , 即 同 一 字 母 的 大小 写 , 被 认 为 是 两 个 不 同 的 字 符 。习 惯 上 , 变 量 名 和 函 数 名 中 的 英 文 字 母 用 小 写 , 以 增 加可 读 性 。思 考 题 : 在 C语 言 中 , 变 量 名 total与 变 量 名 TOTAL、ToTaL、 tOtAl等 是 同 一 个 变 量 吗 ?标 识 符 命 名 的 良 好 习 惯 见 名 知 意 :所 谓 “ 见 名 知 意 ” 是 指 , 通 过 变 量 名 就 知 道 变 量 值 的 含义 。 通 常 应 选 择 能 表 示 数 据 含 义 的 英 文 单 词 ( 或 缩 写 ) 作 变量 名 , 或 汉 语 拼 音 字 头 作 变 量 名 。例 如 , name/xm( 姓 名 ) 、 sex/xb( 性 别 ) 、 age/nl( 年龄 ) 、 salary/gz( 工 资 ) 。 7 4.变 量 的 定 义 与 初 始 化在 语 言 中 , 要 求 对 所 有 用 到 的 变 量 , 必 须 先 定 义 、 后 使用 ; 且 称 在 定 义 变 量 的 同 时 进 行 赋 初 值 的 操 作 为 变 量 初 始 化 。( 1) 变 量 定 义 的 一 般 格 式 存 储 类 型 数 据 类 型 变 量 名 , 变 量 名 2;例 如 , float radius, length, area; ( 2) 变 量 初 始 化 的 一 般 格 式存 储 类 型 数 据 类 型 变 量 名 =初 值 , 变 量 名 2=初 值2;例 如 , float radius=2.5, length, area; Return 8 2.4 整 型 数 据2.4.1 整 型 变 量 1.分 类 根 据 占 用 内 存 字 节 数 的 不 同 , 整 型 变 量 又 分 为 类 :( 1) 基 本 整 型 ( 类 型 关 键 字 为 int) 。( 2) 短 整 型 ( 类 型 关 键 字 为 short int) 。( 3) 长 整 型 ( 类 型 关 键 字 为 long int) 。( 4) 无 符 号 整 型 。 无 符 号 型 又 分 为 无 符 号 基 本 整 型( unsigned int) 、 无 符 号 短 整 型 ( unsigned short) 和 无 符号 长 整 型 ( unsigned long) 三 种 , 只 能 用 来 存 储 无 符 号 整 数 。2.占 用 内 存 字 节 数 与 值 域 上 述 各 类 型 整 型 变 量 占 用 的 内 存 字 节 数 , 随 系 统 而 异 。在 16位 操 作 系 统 中 , 一 般 用 字 节 表 示 一 个 int型 变 量 , 且long型 ( 字 节 ) int型 ( 字 节 ) short型 ( 字 节 ) 。 9 显 然 , 不 同 类 型 的 整 型 变 量 , 其 值 域 不 同 。 占 用 内 存 字节 数 为 n的 ( 有 符 号 ) 整 型 变 量 , 其 值 域 为 : -2n*8-1( 2n*8-1-1) ; 无 符 号 整 型 变 量 的 值 域 为 : 0( 2n*8-1) 。 例 如 , PC机 中 的 一 个 int型 变 量 , 其 值 域 为 -22*8-1( 22*8-1-1) , 即 -3276832767; 一 个 unsigned型 变 量 的 值 域 为 : 0( 22*8-1) , 即 065535。 2.4.2 整 型 常 量 .三 种 表 示 形 式整 型 常 量 即 整 常 数 , 在 语 言 中 可 用 三 种 形 式 表 示 :( 1) 十 进 制 。 例 如 10、 36。( 2) 八 进 制 ( 以 数 字 开 头 ) 。 例 如 012。( 3) 十 六 进 制 ( 以 数 字 +小 写 字 母 x开 头 ) 。 例 如 0 x36。 10 .分 类( 1) 基 本 整 型 。 在 16位 机 中 , 用 2字 节 存 储 , 其 数 据 范 围 与 int型变 量 一 样 。( 2) 长 整 型 ( 在 数 值 后 面 加 “ L( l) ” ) 。 对 超 出 基 本 整 型 值 域的 整 型 常 量 , 可 使 用 长 整 型 常 量 表 示 , 其 取 值 范 围 可 达 - -( - ) 。 例 如 , 123l、 315 等 。 .类 型 匹 配 规 则类 型 匹 配 规 则 为 : 一 个 整 型 常 量 , 可 以 赋 给 能 容 纳 下 其 值 的 整 型变 量 。 例 如 , 其 值 在 - -( - ) 的 整 型 常 量 , 可 以 赋 给 int型 变量 和 long int型 变 量 ; 其 值 在 - -( - ) 的 整 型 常 量 , 就 只 能 赋给 long int型 变 量 。 注 意 : 常 量 无 unsigned型 。 但 一 个 非 负 整 型 常 量 , 只 要 它 的 值 不超 过 相 应 变 量 的 值 域 ( 即 取 值 范 围 ) , 也 可 以 赋 给 unsigned型 变 量 。Return 11 2.5 实 型 数 据2.5.1 实 型 变 量 语 言 的 实 型 变 量 , 分 为 两 种 : ( 1) 单 精 度 型 。 类 型 关 键 字 为 float, 一 般 占 字 节 ( 位 ) 、 提供 位 有 效 数 字 。 ( 2) 双 精 度 型 。 类 型 关 键 字 为 double, 一 般 占 个 字 节 、 提 供1516位 有 效 数 字 。2.5.2 实 型 常 量 .表 示 形 式实 型 常 量 即 实 数 , 在 语 言 中 又 称 浮 点 数 , 其 值 有 两 种 表 达 形 式 : ( 1) 十 进 制 形 式 。 例 如 3.14、 9.8。 ( 2) 指 数 形 式 : E( e) 。 例 如 3.0 +5等 。 .关 于 类 型 实 型 常 量 不 分 float型 和 double型 。 一 个 实 型 常 量 , 可 以 赋 给 一 个实 型 变 量 ( float型 或 double型 ) 。Return 12 2.6 字 符 型 数 据2.6.1 字 符 常 量1.字 符 常 量 的 定 义用 一 对 单 引 号 括 起 来 的 单 个 字 符 , 称 为 字 符 常 量 。例 如 , A、 、 等 。2.转 义 字 符 语 言 还 允 许 使 用 一 种 特 殊 形 式 的 字 符 常 量 , 就 是 以反 斜 杠 “ ”开 头 的 转 义 字 符 。 注 意 : 如 果 反 斜 杠 或 单 引 号 本 身 作 为 字 符 常 量 , 必须 使 用 转 义 字 符 : 、 。案 例 2.1 用 转 义 字 符 输 出 可 打 印 字 符 和 不 可 打 印 字 符 。 /*案 例 代 码 文 件 名 : AL2_1.C*/ /*程 序 功 能 : 用 转 义 字 符 输 出 可 打 印 字 符 和 不 可 打 印字 符 */ 13 main() printf(“x4Fx4Bx21n”); /* 等 价 于 printf(“OK!n”); */ printf(“x15 xABn”); 程 序 运 行 结 果 如 下 : ! 程 序 演 示 2.6.2 字 符 变 量字 符 变 量 的 类 型 关 键 字 为 char, 一 般 占 用 1字 节 内 存 单 元 。1.变 量 值 的 存 储 字 符 变 量 用 来 存 储 字 符 常 量 。 将 一 个 字 符 常 量 存 储 到 一个 字 符 变 量 中 , 实 际 上 是 将 该 字 符 的 ASCII码 值 ( 无 符 号 整数 ) 存 储 到 内 存 单 元 中 。例 如 ,char ch1, ch2; /*定 义 两 个 字 符 变 量 : ch1, ch2*/ch1=a; ch2=b; /*给 字 符 变 量 赋 值 */ 14 2.特 性字 符 数 据 在 内 存 中 存 储 的 是 字 符 的 ASCII码 一 个 无符 号 整 数 , 其 形 式 与 整 数 的 存 储 形 式 一 样 ( 如 图 2-4所 示 ) ,所 以 语 言 允 许 字 符 型 数 据 与 整 型 数 据 之 间 通 用 。( 1) 一 个 字 符 型 数 据 , 既 可 以 字 符 形 式 输 出 , 也 可 以整 数 形 式 输 出 。 案 例 2.2 字 符 变 量 的 字 符 形 式 输 出 和 整 数 形 式 输 出 。 /*案 例 代 码 文 件 名 : AL2_2.C*/ /*程 序 功 能 : 用 字 符 形 式 和 整 数 形 式 输 出 字 符 变 量 */ main() char ch1,ch2; ch1=a; ch2=b; printf(“ch1=%c,ch2=%cn”,ch1,ch2); printf(“ch1=%d,ch2=%dn”,ch1,ch2); 程 序 运 行 结 果 : ch1=a,ch2=b ch1=97,ch2=98 程 序 演 示 15 ( 2) 允 许 对 字 符 数 据 进 行 算 术 运 算 , 此 时 就 是 对 它们 的 ASCII码 值 进 行 算 术 运 算 。 案 例 2.3 字 符 数 据 的 算 术 运 算 。 /*案 例 代 码 文 件 名 : AL2_3.C*/ /*程 序 功 能 : 字 符 数 据 的 算 术 运 算 */ main() char ch1,ch2; ch1=a; ch2=B; /*字 母 的 大 小 写 转 换 */ printf(“ch1=%c,ch2=%cn”,ch1-32,ch2+32); /*用 字 符 形 式 输 出 一 个 大 于 256的 数 值 */ printf(ch1+200=%dn, ch1+200); printf(ch1+200=%cn, ch1+200); printf(ch1+256=%dn, ch1+256); printf(ch1+256=%cn, ch1+256); 16 程 序 运 行 结 果 :ch1=A,ch2=bch1+200=297ch1+200=)ch1+256=353ch1+256=a 程 序 演 示 思 考 题 : 用 字 符 形 式 输 出 一 个 大 于 256的 数 值 , 会 得到 什 么 结 果 ?2.6.3 字 符 串 常 量1.字 符 串 常 量 的 概 念 和 字 符 串 长 度字 符 串 常 量 是 用 一 对 双 引 号 括 起 来 的 若 干 字 符 序 列 。字 符 串 中 字 符 的 个 数 称 为 字 符 串 长 度 。 长 度 为 0的 字符 串 ( 即 一 个 字 符 都 没 有 的 字 符 串 ) 称 为 空 串 , 表 示 为“ ” ( 一 对 紧 连 的 双 引 号 ) 。 17 例 如 , “ How do you do.”、 “ Good morning.”等 , 都 是 字 符 串 常量 , 其 长 度 分 别 为 14和 13( 空 格 也 是 一 个 字 符 ) 。 如 果 反 斜 杠 和 双 引 号 作 为 字 符 串 中 的 有 效 字 符 , 则 必 须 使 用 转义 字 符 。例 如 : ( 1) C:msdosv6.22 C:msdosv6.22 ( 2) I say:Goodbye! I say:Goodbye!“2.字 符 串 的 存 储C语 言 规 定 : 在 存 储 字 符 串 常 量 时 , 由 系 统 在 字 符 串 的 末 尾 自动 加 一 个 0作 为 字 符 串 的 结 束 标 志 。注 意 : 在 源 程 序 中 书 写 字 符 串 常 量 时 , 不 必 加 结 束 字 符 0,否 则 画 蛇 添 足 。 如 果 有 一 个 字 符 串 为 “ CHINA”, 则 它 在 内 存 中 的 实 际 存 储 如 下所 示 : 最 后 一 个 字 符 0是 系 统 自 动 加 上 的 , 它 占 用 字 节 而 非 字 节内 存 空 间 。 C H I N A 0 18综 上 所 述 , 字 符 常 量 A与 字 符 串 常 量 A是 两 回 事 :( 1) 定 界 符 不 同 : 字 符 常 量 使 用 单 引 号 , 而 字 符 串常 量 使 用 双 引 号 ;( 2) 长 度 不 同 : 字 符 常 量 的 长 度 固 定 为 1, 而 字 符 串常 量 的 长 度 , 可 以 是 0, 也 可 以 是 某 个 整 数 ;( 3) 存 储 要 求 不 同 : 字 符 常 量 存 储 的 是 字 符 的 ASCII码 值 , 而 字 符 串 常 量 , 除 了 要 存 储 有 效 的 字 符 外 , 还 要存 储 一 个 结 束 标 志 0。Return 19 2.7 算 术 运 算 与 算 术 表 达 式在 语 言 中 , 除 控 制 语 句 和 输 入 输 出 函 数 外 , 其 它 所有 基 本 操 作 都 作 为 运 算 符 处 理 。 1.五 种 基 本 算 术 运 算 符 +、 -( 减 法 /取 负 ) 、 *、 /、 %( 求 余 数 )( 1) 关 于 除 法 运 算 /C语 言 规 定 : 两 个 整 数 相 除 , 其 商 为 整 数 , 小 数 部 分被 舍 弃 。 例 如 , 5 / 2 = 2。 ( 2) 关 于 求 余 数 运 算 要 求 两 侧 的 操 作 数 均 为 整 型 数 据 , 否 则 出 错 。 2.表 达 式 和 算 术 表 达 式( 1) 表 达 式 的 概 念 用 运 算 符 和 括 号 将 运 算 对 象 ( 常 量 、 变 量 和 函 数 等 ) 连 接 起 来 的 、 符 合 语 言 语 法 规 则 的 式 子 , 称 为 表 达 式 。 20 单 个 常 量 、 变 量 或 函 数 , 可 以 看 作 是 表 达 式 的 一 种 特例 。 将 单 个 常 量 、 变 量 或 函 数 构 成 的 表 达 式 称 为 简 单 表 达式 , 其 它 表 达 式 称 之 为 复 杂 表 达 式 。( 2) 算 术 表 达 式 的 概 念表 达 式 中 的 运 算 符 都 是 算 术 运 算 符 。 例 如 , 3 + 6 * 9、(x + y) / 2 - 1等 , 都 是 算 术 表 达 式 。良 好 的 源 程 序 书 写 习 惯 : 在 表 达 式 中 , 在 双 目 运 算 符的 左 右 两 侧 各 加 一 个 空 格 , 可 增 强 程 序 的 可 读 性 。请 比 较 表 达 式 “ (x + y) / 2 1”与 “ (x+y)/21”, 您 认 为哪 个 的 可 读 性 更 好 一 些 ?3.运 算 符 的 优 先 级 与 结 合 性( 1) 语 言 规 定 了 运 算 符 的 优 先 级 和 结 合 性 。 所 谓 结 合 性 是 指 , 当 一 个 操 作 数 两 侧 的 运 算 符 具 有 相同 的 优 先 级 时 , 该 操 作 数 是 先 与 左 边 的 运 算 符 结 合 , 还 是先 与 右 边 的 运 算 符 结 合 。 21 自 左 至 右 的 结 合 方 向 , 称 为 左 结 合 性 。 反 之 , 称 为 右结 合 性 。结 合 性 是 语 言 的 独 有 概 念 。 除 单 目 运 算 符 、 赋 值运 算 符 和 条 件 运 算 符 是 右 结 合 性 外 , 其 它 运 算 符 都 是 左结 合 性 。( 2) 表 达 式 求 值1) 按 运 算 符 的 优 先 级 高 低 次 序 执 行 。 例 如 , 先 乘 除后 加 减 。2) 如 果 在 一 个 运 算 对 象 ( 或 称 操 作 数 ) 两 侧 的 运 算符 的 优 先 级 相 同 , 则 按 语 言 规 定 的 结 合 方 向 ( 结 合 性 )进 行 。例 如 , 算 术 运 算 符 的 结 合 方 向 是 “ 自 左 至 右 ” , 即 :在 执 行 “ a b + c”时 , 变 量 b先 与 减 号 结 合 , 执 行 “ a - b”;然 后 再 执 行 加 c的 运 算 。 22 4.数 据 类 型 转 换( 1) 在 语 言 中 , 整 型 、 实 型 和 字 符 型 数 据 间 可 以混 合 运 算 ( 因 为 字 符 数 据 与 整 型 数 据 可 以 通 用 ) 。如 果 一 个 运 算 符 两 侧 的 操 作 数 的 数 据 类 型 不 同 , 则 系统 按 “ 先 转 换 、 后 运 算 ” 的 原 则 , 首 先 将 数 据 自 动 转 换成 同 一 类 型 , 然 后 在 同 一 类 型 数 据 间 进 行 运 算 。 转 换 规则 如 图 2-5所 示 。1) 横 向 向 左 的 箭 头 , 表 示 必 须 的 转 换 。 char和 short 型 必 须 转 换 成 int 型 , float型 必 须 转 换 成 double型 。 2) 纵 向 向 上 的 箭 头 , 表 示 不 同 类 型 的 转 换 方 向 。 例 如 , int型 与 double型 数 据 进 行 混 合 运 算 , 则 先 将 int型 数 据 转 换 成 double型 , 然 后 在 两 个 同 类 型 的 数 据 间 进 行运 算 , 结 果 为 double型 。 注 意 : 箭 头 方 向 只 表 示 数 据 类 型 由 低 向 高 转 换 , 不 要理 解 为 int型 先 转 换 成 unsigned型 , 再 转 换 成 long型 , 最 后转 换 成 double型 。 23 ( 2) 除 自 动 转 换 外 , 语 言 也 允 许 强 制 转 换 。数 据 类 型 强 制 转 换 的 一 般 格 式 为 : (要 转 换 成 的 数 据 类 型 )(被 转 换 的 表 达 式 )当 被 转 换 的 表 达 式 是 一 个 简 单 表 达 式 时 , 外 面 的 一 对圆 括 号 可 以 缺 省 。例 如 ,(double)a ( 等 价 于 (double)(a) /*将 变 量 a的 值 转 换 成 double型 */(int)(x + y) /*将 x+y的 结 果 转 换 成 int型 */(float)5 / 2( 等 价 于 (float)(5)/2) /*将 5转 换 成 实 型 , 再 除 以 2( =2.5) */(float)(5 / 2) /*将 5整 除 2的 结 果 ( 2) 转 换 成 实 型( 2.0) */注 意 : 强 制 转 换 类 型 得 到 的 是 一 个 所 需 类 型 的 中 间 量 , 原 表 达式 类 型 并 不 发 生 变 化 。 例 如 , (double)a 只 是 将 变 量 a的 值 转 换 成 一 个double型 的 中 间 量 , 其 数 据 类 型 并 未 转 换 成 double型 。Return 24 2.8 赋 值 运 算 与 赋 值 表 达 式 1.赋 值 运 算 赋 值 符 号 “ =”就 是 赋 值 运 算 符 , 它 的 作 用 是 将 一 个表 达 式 的 值 赋 给 一 个 变 量 。 赋 值 运 算 符 的 一 般 形 式 为 : 变 量 = 赋 值 表 达 式 例 如 , x = 5 y = (float)5 / 2 如 果 表 达 式 值 的 类 型 , 与 被 赋 值 变 量 的 类 型 不 一 致 ,但 都 是 数 值 型 或 字 符 型 时 , 系 统 自 动 地 将 表 达 式 的 值 转换 成 被 赋 值 变 量 的 数 据 类 型 , 然 后 再 赋 值 给 变 量 。 思 考 题 : 假 设 变 量 num的 数 据 类 型 为 float, 其 值 为 2.5,则 执 行 “ num = (int)num”后 , num的 值 等 于 多 少 ? 25 2.复 合 赋 值 运 算复 合 赋 值 运 算 符 是 由 赋 值 运 算 符 之 前 再 加 一 个 双 目 运算 符 构 成 的 。复 合 赋 值 运 算 的 一 般 格 式 为 : 变 量 双 目 运 算 符 = 表 达 式 复 合 赋 值 运 算 符它 等 价 于 : 变 量 = 变 量 双 目 运 算 符 (表 达 式 )。当 表 达 式 为 简 单 表 达 式 时 , 表 达 式 外 的 一 对 圆 括 号 才可 缺 省 , 否 则 可 能 出 错 。例 如 , x += 3 /* 等 价 于 x=x+3 */ y *= x + 6 /* 等 价 于 y=y*(x+6), 而 不 是 y=y*x+6 */ C语 言 规 定 的 10种 复 合 赋 值 运 算 符 如 下 :+=, -=, *=, /=, %=; /*复 合 算 术 运 算 符 ( 5个 ) */ printf(x=%dn,x); /*输 出 x的 初 值 */ y = +x; /*前 置 运 算 */ printf(y=+x: x=%d,y=%dn,x,y); y = x-; /*后 置 运 算 */ printf(y=x-: x=%d,y=%dn,x,y); 程 序 运 行 结 果 :x=6 y=+x: x=7,y=7y=x-: x=6,y=7 程 序 演 示 29 思 考 题 : 如 果 将 案 例 “ y=+x;”语 句 中 的 前 置 运 算 改 为后 置 ( y=x+;) , “ y=x-;”语 句 中 的 后 置 运 算 改 为 前 置( y=-x;) , 程 序 运 行 结 果 会 如 何 ?3.说 明( 1) 自 增 、 自 减 运 算 , 常 用 于 循 环 语 句 中 , 使 循 环 控制 变 量 加 ( 或 减 ) , 以 及 指 针 变 量 中 , 使 指 针 指 向 下( 或 上 ) 一 个 地 址 。( 2) 自 增 、 自 减 运 算 符 , 不 能 用 于 常 量 和 表 达 式 。例 如 , 5+、 -(a+b)等 都 是 非 法 的 。( 3) 在 表 达 式 中 , 连 续 使 同 一 变 量 进 行 自 增 或 自 减 运算 时 , 很 容 易 出 错 , 所 以 最 好 避 免 这 种 用 法 。2.8.2 逗 号 运 算 ( , ) 及 其 表 达 式 语 言 提 供 一 种 用 逗 号 运 算 符 “ , ” 连 接 起 来 的 式 子 ,称 为 逗 号 表 达 式 。 逗 号 运 算 符 又 称 顺 序 求 值 运 算 符 。 301.一 般 形 式 表 达 式 , 表 达 式 , , 表 达 式 n2.求 解 过 程自 左 至 右 , 依 次 计 算 各 表 达 式 的 值 , “ 表 达 式 n” 的值 即 为 整 个 逗 号 表 达 式 的 值 。例 如 , 逗 号 表 达 式 “ a = 3 * 5, a * 4”的 值 =60: 先 求 解a = 3 * 5, 得 a=15; 再 求 a * 4 = 60, 所 以 逗 号 表 达 式 的 值=60。 又 例 如 , 逗 号 表 达 式 “ (a = 3 * 5, a * 4), a + 5”的 值=20: 先 求 解 a = 3 * 5, 得 a=15; 再 求 a * 4=60; 最 后 求 解a + 5=20, 所 以 逗 号 表 达 式 的 值 =20。注 意 : 并 不 是 任 何 地 方 出 现 的 逗 号 , 都 是 逗 号 运 算符 。 很 多 情 况 下 , 逗 号 仅 用 作 分 隔 符 。Return
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!