数据类型运算符与表达式

上传人:san****019 文档编号:21172550 上传时间:2021-04-25 格式:PPT 页数:63 大小:278.50KB
返回 下载 相关 举报
数据类型运算符与表达式_第1页
第1页 / 共63页
数据类型运算符与表达式_第2页
第2页 / 共63页
数据类型运算符与表达式_第3页
第3页 / 共63页
点击查看更多>>
资源描述
失 之 毫 厘 , 谬 以 千 里3、 1 C语 言 的 数 据 类 型 3、 6 变 量 赋 初 值3、 2 常 量 和 变 量 3、 7 混 合 运 算 3、 3 整 型 数 据 3、 8 算 术 运 算3、 4 实 型 数 据 3、 9 赋 值 运 算3、 5 字 符 型 数 据 3、 10 逗 号 运 算 3、 11 位 运 算 失 之 毫 厘 , 谬 以 千 里在 程 序 中 对 用 到 的 所 有 数 据 变 量 都 必 须 指 定 其 数 据 类 型 。 失 之 毫 厘 , 谬 以 千 里 失 之 毫 厘 , 谬 以 千 里(1) 一 般 符 号 常 量 用 大 写 字 母 取 名(2) 符 号 常 量 的 值 在 其 作 用 域 内 不 能 改 变 即 程 序 里 不 能 出 现 PRICE=40; 语 句 失 之 毫 厘 , 谬 以 千 里 1) 标 识 符 : 用 来 作 为 变 量 名 、 符 号 常 量 名 、 函 数 名 、 数 组 名 、文 件 名 等 的 有 效 字 符 序 列 称 为 标 识 符 规 定 : ( 1) 标 识 符 只 能 由 字 母 , 数 字 和 下 划 线 组 成 , 且 以 字 母 或 下 划 线 开 头 建 议 不 超 过 8 个 字 符 。 ( 2) 大 小 写 分 别 表 示 不 同 的 标 识 符 。2) 关 键 字 ( 保 留 字 ) : 一 些 在 编 译 过 程 中 起 特 殊 作 用 的 标 识 符 。 如 : char, int, short, float, double if, else, while,等 共 计 32个 失 之 毫 厘 , 谬 以 千 里3) 变 量 程 序 运 行 过 程 中 其 值 可 以 改 变 的 量 称 为 变 量 。 变量 应 该 有 名 字 , 并 在 内 存 中 占 有 一 定 的 存 储 单 元 。变 量 名 是 一 个 标 识 符 。合 法 的 变 量 名 : sum, _above, class1, basic不 合 法 的 变 量 名 : M.D.John, 3D64, ab, #33, $234注 意 : ( 1) 变 量 名 一 般 用 小 写 字 母 表 示 ( 2) 起 变 量 名 应 遵 循 “ 见 名 知 义 ” 原 则 ( 3) 变 量 名 不 能 与 关 键 字 同 名 。 失 之 毫 厘 , 谬 以 千 里4) 变 量 的 定 义 及 其 目 的例 : int a,b,c; char c1,c2;其 目 的 为 :( 1) 凡 未 被 定 义 的 , 不 作 变 量 名 使 用 ;( 2) 指 定 变 量 类 型 后 , 系 统 编 译 时 可 分 配 相 应 的 存 储 单 元 ;( 3) 定 义 变 量 类 型 便 于 编 译 时 检 查 此 变 量 所 进 行 的 运 算 是 否 合 法 。C中 变 量 应 先 定 义 后 使 用 。 失 之 毫 厘 , 谬 以 千 里 计 算 机 内 部 的 数 据 和 C语 言 的 数 据 都 是 以 二 进制 补 码 表 示 的 。 补 码 的 最 高 位 为 符 号 位 , 若 为 0,该 数 为 正 数 ; 若 为 1, 该 数 为 负 数 。 符 号 位 与 数 值位 一 起 参 与 运 算 。 正 数 的 补 码 即 其 本 身 。 负 数 的 补 码 可 这 样 求 出 :( 1) 先 求 该 数 的 绝 对 值 , 再 求 出 对 应 正 数 的 二 进制 编 码 ;( 2) 对 二 进 制 编 码 按 位 取 反 ;( 3) 对 最 低 位 加 1。补 充 : 数 的 补 码 表 示 失 之 毫 厘 , 谬 以 千 里求 -2的 补 码 ( 以 两 个 字 节 表 示 ) (1)求 -2的 绝 对 值 , |-2|=2, 二 进 制 编 码 为 : 0000 0000 0000 0010( 2) 按 位 取 反 得 : 1111 1111 1111 1101( 3) 最 低 位 加 1: 1111 1111 1111 1101 1 1111 1111 1111 1110 失 之 毫 厘 , 谬 以 千 里3、 3 整 型 数 据1、 整 型 常 量C整 常 数 有 三 种 表 示 形 式 : 十 进 制 : 123, 456, 0八 进 制 : 以 0开 头 , 如 : 0123 等 于 十 进 制 数 83 011 等 于 十 进 制 数 9 十 六 进 制 : 以 0 x或 0X打 头 如 : 0 x123 等 于 十 进 制 数 291 0 x12 等 于 十 进 制 数 18注 :负 数 在 计 算 机 中 表 示 形 式 ? 失 之 毫 厘 , 谬 以 千 里2、 整 型 变 量整 型 变 量 基 本 整 型 int短 整 型 shortint 长 整 型 long(int)无 符 号 型 无 符 号 整 型 unsigned int无 符 号 长 整 型 unsigned long无 符 号 短 整 型 unsigned short 失 之 毫 厘 , 谬 以 千 里数 据 类 型 ( 关 键 字 ) 字 节 个 数 取 值 范 围short 2 -32768+32767unsigned short 2 0+65535int 2 -32768+32767unsigned 2 0+65535long 4 -21474836482147483647unsigned long 4 04294967295 失 之 毫 厘 , 谬 以 千 里0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 int 型0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 unsigned int 整 数 13在 存 储 单 元 中 的 存 储 情 况 失 之 毫 厘 , 谬 以 千 里3、 整 型 变 量 的 定 义 及 使 用程 序 中 用 到 的 变 量 都 必 须 先 定 义 , 例 如 :运 行 结 果 : a+u=22 , b+u= - 14 失 之 毫 厘 , 谬 以 千 里4、 整 型 数 据 的 溢 出 一 个 int型 变 量 的 最 大 允 许 值 是 32767,如 果 再 加1,其 结 果 会 是 怎 样 一 种 情 况 ? 它 就 好 像 汽 车 的 里 程 表 一 样 ,达 到 最 大 值 后 ,又从 最 小 的 开 始 计 数 . 失 之 毫 厘 , 谬 以 千 里5、 整 型 常 量 的 类 型1. 值 在 32768 32767的 整 常 数 , 认 为 它 是 int型 , 可 赋 给 int 型 和 long int 型 变 量 ;2. 值 超 过 上 述 范 围 , 而 在 2 2 1的 整 常 数 , 认 为 它 是 long int 型 ,可 赋 给 long int 型 变 量 ;3. 只 有 非 负 的 整 常 数 可 赋 给 unsigned型 变 量 , 但 值 不 能 超 出 该 unsigned 型 变 量 的 取 值 范 围 ;4. 整 常 量 后 加 一 个 l 或 L, 则 认 为 其 为 long int 型 常 量 , 如 : 123L, 0L, 432L 此 常 用 于 函 数 调 用 中 ,使 形 参 类 型 匹 配 于 实 参 类 型 。31 31 失 之 毫 厘 , 谬 以 千 里3、 4实 型 数 据1、 实 型 常 量 1)十 进 制 数 形 式 : 由 数 字 和 小 数 点 组 成 如 : 0.0 , 0.123, -34.6, .678 , 90. 注 意 : 小 数 点 必 须 有 , 且 其 前 后 数 字 不 能 同 时 缺 省 。 2)指 数 形 式 ( 科 学 计 数 法 ):由 尾 数 , 指 数 和 字 母 e或 E组 成 如 : 123E3 代 表 123 10 注 意 : E前 必 须 有 数 字 , E后 必 须 为 整 数 E5 3.4E5.6 不 合 法 3 失 之 毫 厘 , 谬 以 千 里 3)规 范 化 的 指 数 (输 出 )形 式 :即 在 字 母 e或 E之 前 的 小数 部 分 中 ,小 数 点 左 边 应 有 一 位 且 只 能 有 一 位 非 零 的 数字 。 如 : 2.3478e2、 3.099E5 等 等 . 4)实 型 数 据 在 内 存 的 存 放 形 式 :实 型 数 据 是 按 指 数 形式 存 储 的 ,系 统 把 一 个 实 型 数 据 分 成 小 数 部 分 (.xxxxx)和 指 数 部 分 (采 用 规 范 化 的 指 数 形 式 ),分 别 存 放 . 如 :3.14159 小 数 部 分 占 的 位 数 越 多 ,精 度 越 高 ;指 数 部 分 占的 位 数 越 多 ,可 表 示 数 值 范 围 越 大 . 失 之 毫 厘 , 谬 以 千 里2、 实 型 变 量单 精 度 型 ( float) 32位 7位 有 效 数 字 10 10 双 精 度 型 ( double) 64位 15 16 位 有 效 数 字 10 10 38 38 308 308定 义 实 型 变 量 : float x , y ; double z , a, b ; 失 之 毫 厘 , 谬 以 千 里 实 型 常 量 不 分 float型 和 double型 ,系 统 按 double型 处 理 ,若 按 float型 处 理 ,可 在 数 值 后 面 加 f或 F. 一 个 实 型 常 量 可 赋 给 一 个 实 型 变 量 ( float型 或double型 ) , 根 据 变 量 类 型 截 取 实 常 量 中 相 应 的 有 效位 数 。 例 : float x ; double y ; 则 : x=222222.222 y=222222.222 注 意 实 型 数 据 的 舍 入 误 差 ;应 当 避 免 将 一 个 很 大 的数 和 一 个 很 小 的 数 直 接 相 加 减 ;同 理 1.0/3*3!=1 失 之 毫 厘 , 谬 以 千 里3.5 字 符 型 数 据 A , ? , = 失 之 毫 厘 , 谬 以 千 里 失 之 毫 厘 , 谬 以 千 里2、 字 符 变 量 定 义 形 式 : char c1,c2 ; 赋 值 : c1 = O ; c2 = K ; 则 : printf( %c %c n ,c1 , c2);输 出 : O K 失 之 毫 厘 , 谬 以 千 里3、 字 符 数 据 在 内 存 中 的 存 储 形 式 及 其 使 用 方 法 1) 字 符 数 据 在 内 存 中 存 放 的 是 其 ASCII值 。 例 : char c1, c2; c1 = a ; c2 = b ; 则 : c1 c20 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 失 之 毫 厘 , 谬 以 千 里2) C中 , 整 型 数 据 和 字 符 型 数 据 之 间 可 通 用 ( 1) 程 序 中 , 字 符 数 据 既 可 按 字 符 形 式 输 出 , 也 可 以 整 数 形 式 输 出 。 由 输 出 格 式 字 符 串 %c 和 %d 决 定 。 ( 2) 字 符 数 据 可 进 行 算 术 运 算 , 字 符 变 量 既 可 赋 值 以 字 符 常 量 , 也 可 赋 以 相 应 的 ASCII值 。 C的 整 型 数 据 与 字 符 数 据 间 可 相 互 赋 值 。 失 之 毫 厘 , 谬 以 千 里运 行 结 果 : a b A B 失 之 毫 厘 , 谬 以 千 里4、 字 符 串 常 量一 对 双 引 号 括 起 来 的 字 符 序 列 。 例 : a , How do you do. , China , abcn , $123.45C规 定 : 在 内 存 中 , 系 统 自 动 在 每 个 字 符 串 的结 尾 加 上 一 个 字 符 串 结 束 标 志 0, 以 便系 统 据 此 判 断 字 符 串 结 束 标 志 。所 以 , “ a” 在 内 存 中 占 两 个 字 节 。 a 0 失 之 毫 厘 , 谬 以 千 里char c ; c = a ; c = a ;C 中 无 专 门 的 字 符 串 变 量 , 如 需 要 , 可 用字 符 数 组 来 存 放 。注 意 : 字 符 常 量 和 字 符 串 常 量 不 可 混 淆 。 失 之 毫 厘 , 谬 以 千 里3.6 变 量 赋 初 值 此 些 变 量 的 初 始 化 不 是 在 编 译 阶 段 完 成 ,而 是 在 程 序 执 行 本 函 数 时 赋 予 初 值 的 ,相 当 于有 一 个 赋 值 语 句 。 失 之 毫 厘 , 谬 以 千 里3.7 数 值 型 数 据 间 的 混 合 运 算C中 , 整 型 , 字 符 型 , 实 型 ( 包 括 单 精 度 ,双 精 度 ) 数 据 可 出 现 在 一 个 表 达 式 中 进 行混 合 运 算 。类 型 自 动 转 换 规 则 高低 double floatlongunsignedint char, short 失 之 毫 厘 , 谬 以 千 里例 : int i ; float f ; double d ; long e ;则 : 10 a + i * f - d / e 合 法转 换 次 序 : ( 1) 计 算 10 a , 结 果 为 整 数 107 ( 2) 计 算 i*f , 结 果 为 double型 ( 3) 整 数 107与 i*f的 积 相 加 , 结 果 为 double型 ( 4) 计 算 d/e , 结 果 为 double型 ( 5) 将 10 a +i * f 的 结 果 与 d/e 的 商 相 减 , 结 果 为 double型 。 失 之 毫 厘 , 谬 以 千 里3、 8 算 术 运 算 符 和 算 术 表 达 式1、 运 算 符 的 种 类 、 优 先 级 和 结 合 性 语 言 中 运 算 符 和 表 达 式 数 量 之 多 , 在 高 级语 言 中 是 少 见 的 。 正 是 丰 富 的 运 算 符 和 表 达 式 使 语 言 功 能 十 分 完 善 。 这 也 是 语 言 的 主 要 特 点之 一 。 语 言 的 运 算 符 不 仅 具 有 不 同 的 优 先 级 , 而且 还 有 一 个 特 点 , 就 是 它 的 结 合 性 。 在 表 达 式 中 ,各 运 算 量 参 与 运 算 的 先 后 顺 序 不 仅 要 遵 守 运 算 符优 先 级 别 的 规 定 , 还 要 受 运 算 符 结 合 性 的 制 约 , 以便 确 定 是 自 左 向 右 进 行 运 算 还 是 自 右 向 左 进 行 运 算 。这 种 结 合 性 是 其 它 高 级 语 言 的 运 算 符 所 没 有 的 , 因 此也 增 加 了 语 言 的 复 杂 性 。 失 之 毫 厘 , 谬 以 千 里 失 之 毫 厘 , 谬 以 千 里2. 算 术 运 算 符 和 算 术 表 达 式1) 基 本 算 术 运 算 符 * / %( 模 除 , 或 称 求 余 ) 例 : 7 % 3 值 为 1 5/3 = 1, -5/3 = -1 若 参 加 运 算 的 两 个 数 中 有 一 个 为 实 数 , 则结 果 为 double型 。求 余 运 算 ( %) 要 求 参 与 运 算 的 量 均 为 整 型 。其 结 果 等 于 两 数 相 除 后 的 余 数 。 失 之 毫 厘 , 谬 以 千 里main( ) printf(nn%d,%dn,20/7,-20/7); printf(%f,%fn,20.0/7,-20.0/7); 参 与 运 算 量 均 为 整 型 时 , 结 果 也 为 整 型 , 舍 去 小 数 。 如 果 运 算 量 中 有 一 个 是 实 型 , 则 结 果 为 双 精 度 实 型 。 本 例 中 , 20/7, -20/7的 结 果 均 为 整 型 , 小 数 全 部 舍去 。 而 20.0/7和 -20.0/7由 于 有 实 数 参 与 运 算 , 因 此结 果 也 为 实 型 。 失 之 毫 厘 , 谬 以 千 里2) 算 术 表 达 式 表 达 式 是 由 常 量 、 变 量 、 函 数 和 运 算 符 组 合 起 来的 式 子 。 一 个 表 达 式 有 一 个 值 及 其 类 型 , 它 们 等 于计 算 表 达 式 所 得 结 果 的 值 和 类 型 。 表 达 式 求 值 按 运 算符 的 优 先 级 和 结 合 性 规 定 的 顺 序 进 行 。 单 个 的 常 量 、变 量 、 函 数 可 以 看 作 是 表 达 式 的 特 例 。 算 术 表 达 式 是 由 算 术 运 算 符 和 括 号 连 接 起 来 的 式子 , 以 下 是 算 术 表 达 式 的 例 子 :a+b (a*2) c (x+r)*8-(a+b) 7 +i sin(x)+sin(y) (+i)-(j+)+(k-) 失 之 毫 厘 , 谬 以 千 里注 意 : C语 言 算 术 表 达 式 的 书 写 形 式 类 似 于 数 学 中的 代 数 表 达 式 , 但 有 区 别 :(1) a * b 不 能 写 为 a b、 ab 、 a.b(2) c / d 不 能 写 为 c d 、 cd(3) e-(f+(g-h)/(i-j)+k 不 能 写 为 e-f+(g-h)/(i-j)+k (4) 3.14*r*r 不 能 写 为 *r*2 或 3.14*r2(5) sin( x ) 不 能 写 为 sinx(6) log( x ) 不 能 写 为 lnx log10( x ) 不 能 写 为 logx 10 失 之 毫 厘 , 谬 以 千 里3、 算 术 运 算 符 的 优 先 级 和 结 合 性1) 优 先 级 : 指 表 达 式 运 算 时 应 按 运 算 符 的优 先 级 别 高 低 次 序 进 行 , 例 : ( ) 高 * / % + - 低 如 : a-b*c 相 当 于 a-(b*c ) 失 之 毫 厘 , 谬 以 千 里2) 结 合 性 : 先 按 运 算 符 的 优 先 级 别 高 低 依 次 进 行.若 在 一 个 运 算 对 象 两 侧 的 运 算 符 的 优 先 级 相 同 ,则 按 规 定 的 “ 结 合 方 向 ” 处 理 。 算 术 运 算 符 的 结 合 方 向 自 左 向 右 :运 算 对 象 先与 左 面 的 运 算 符 结 合 .称 为 左 结 合 性 。 例 : a-b+c 相 当 于 (a-b)+c 失 之 毫 厘 , 谬 以 千 里4、 强 制 类 型 转 换 运 算 作 用 : 将 一 个 表 达 式 转 换 成 所 需 类 型 形 式 : ( 类 型 名 ) ( 表 达 式 ) 例 : (double)a (int) (x+y) (float) (5%3)说 明 : 强 制 类 型 转 换 时 , 得 到 一 个 所 需 类 型 的中 间 变 量 , 而 原 来 变 量 的 类 型 未 发 生 变 化 。举 例 : float x=2.5; int i; i=(int)x; 失 之 毫 厘 , 谬 以 千 里5、 自 增 , 自 减 运 算 符 自 增 运 算 符 记 为 “ +” , 其 功 能 是 使 变 量 的 值 自 增 1。 自 减 运 算 符 记 为 “ -” , 其 功 能 是 使 变 量 值 自 减 1。 可 有 以 下 几 种 形 式 :+i i自 增 1后 i再 参 与 表 达 式 整 体 的 其 它 运 算 。-i i自 减 1后 i再 参 与 表 达 式 整 体 的 其 它 运 算 。i+ i参 与 表 达 式 整 体 的 运 算 后 , i的 值 再 自 增 1。i- i参 与 表 达 式 整 体 的 运 算 后 , i的 值 再 自 减 1。 在 理 解 和 使 用 上 容 易 出 错 的 是 i+和 i-。 特 别 是 当它 们 出 在 较 复 杂 的 表 达 式 或 语 句 中 时 , 常 常 难 于 弄 清 , 因此 应 仔 细 分 析 。 失 之 毫 厘 , 谬 以 千 里注 意 : 1) 自 增 、 自 减 运 算 符 只 能 用 于 变 量 , 而 不 能 用 于常 量 或 表 达 式 。 如 5+ ( a+b) + 都 是 不 合 法 的 。 2) +和 -的 结 合 方 向 是 “ 自 右 向 左 ” 。 如 -i+ 应 理 解 为 -( i+) 而 不 是 ( -i) + 3) 自 增 、 自 减 运 算 符 常 用 于 循 环 语 句 中 ,使 循 环 变量 自 动 加 1,也 用 于 指 针 变 量 ,使 指 针 指 向 下 一 个 地 址 . 失 之 毫 厘 , 谬 以 千 里 main( ) int i=8; printf(%dn,+i); 9 printf(%dn,-i); 8 printf(%dn,i+); 8 printf(%dn,i-); 9 printf(%dn,-i+); -8 printf(%dn,-i-); -9 i的 初 值 为 8, 第 2行 i加 1后 输 出 为 9; 第 3行 减 1后 输 出为 8; 第 4行 输 出 i为 8之 后 再 加 1(为 9); 第 5行 输 出 i为 9之 后 再 减 1(为 8) ; 第 6行 输 出 -8之 后 再 加 1(为 9), 第 7行 输 出 -9之 后 再 减 1(为 8)。 失 之 毫 厘 , 谬 以 千 里 main() int i=5,j=5,p,q; p=(i+)+(i+)+(i+); q=(+j)+(+j)+(+j); printf(%d,%d,%d,%d,p,q,i,j); i-5,jp,i+1-i,i+1-i,i+1-i j+1-j,j+1-j,j+1-j,j+j+j-q 这 个 程 序 中 , 对 P=(i+)+(i+)+(i+)应 理 解 为 三个 i相 加 , 故 P值 为 15。 然 后 i再 自 增 1三 次 相 当 于 加 3故 i的 最 后 值 为 8。 而 对 于 q 的 值 则 不 然 , q=(+j)+(+j)+(+j)应 理解 为 q先 自 增 1, 再 参 与 运 算 , 由 于 q自 增 1三 次 后 值 为 8,三 个 8相 加 的 和 为 24, j的 最 后 值 仍 为 8。 失 之 毫 厘 , 谬 以 千 里3、 9 赋 值 运 算 符 和 赋 值 表 达 式 1、 简 单 赋 值 运 算 符 和 表 达 式简 单 赋 值 运 算 符 记 为 “ =” 。 由 “ = ” 连 接 的 式 子 称 为 赋 值 表 达 式 。 其 一 般 形 式 为 :变 量 =表 达 式 x=a+b w=sin(a)+sin(b) y=i+ + -j赋 值 表 达 式 的 功 能 是 计 算 表 达 式 的 值 再 赋 予 左 边 的 变 量 。 赋 值 运 算 符 具 有 右 结 合 性 。 因 此 a=b=c=5 可 理 解 为 a=(b=(c=5) 失 之 毫 厘 , 谬 以 千 里关 于 简 单 赋 值 运 算 符 及 赋 值 表 达 式 的 说 明 : 1) 在 其 它 高 级 语 言 中 , 赋 值 构 成 了 一 个 语 句 , 称 为赋 值 语 句 。 而 在 C中 , 把 “ =” 定 义 为 运 算 符 , 从 而 组成 赋 值 表 达 式 。 凡 是 表 达 式 可 以 出 现 的 地 方 均 可 出 现赋 值 表 达 式 。 例 如 , 式 子 x=(a=5)+(b=8)是 合 法 的 。 它的 意 义 是 把 5赋 予 a, 8赋 予 b, 再 把 表 达 式 a=5,b=8的 值相 加 , 和 赋 予 x, 故 x应 等 于 13。 2) 在 语 言 中 也 可 以 组 成 赋 值 语 句 , 按 照 语 言 规定 , 任 何 表 达 式 在 其 未 尾 加 上 分 号 就 构 成 为 语 句 。 因此 , 如 x=8;a=b=c=5; 都 是 赋 值 语 句 。 失 之 毫 厘 , 谬 以 千 里赋 值 时 的 类 型 转 换 如 果 赋 值 运 算 符 两 边 的 数 据 类 型 不 相 同 , 系 统 将 自动 进 行 类 型 转 换 , 即 把 赋 值 号 右 边 的 类 型 换 成 左 边 的 类型 。 具 体 规 定 如 下 : 1.实 型 赋 予 整 型 , 舍 去 小 数 部 分 。 前 面 的 例 子 已 经说 明 了 这 种 情 况 。 2.整 型 赋 予 实 型 , 数 值 不 变 , 但 将 以 浮 点 形 式 存 放 , 即 增 加 小 数 部 分 (小 数 部 分 的 值 为 0)。 3.字 符 型 赋 予 整 型 , 由 于 字 符 型 为 一 个 字 节 , 而 整型 为 二 个 字 节 , 故 将 字 符 的 ASCII码 值 放 到 整 型 量 的 低 八位 中 , 高 八 位 为 0。 4.整 型 赋 予 字 符 型 , 只 把 低 八 位 赋 予 字 符 量 。 失 之 毫 厘 , 谬 以 千 里 main() int a,b=322; float x,y=8.88; char c1=k,c2; a=y; x=b; a=c1; c2=b; printf(%d,%f,%d,%c,a,x,a,c2); 本 例 表 明 了 上 述 赋 值 运 算 中 类 型 转 换 的 规 则 : a为 整 型 , 赋 以 实 型 量 y值 8.88后 只 取 整 数 8。 x为 实 型 , 赋 以 整 型 量 b值 322, 后 增 加 了 小 数 部 分 。 字 符 型 量 c1赋 以 a变 为 整 型 , 整 型 量 b赋 予 c2 后 取 其 低 八 位 成 为 字 符 型 (b的 低 八 位 为 01000010, 即 十 进 制 66, 按 ASCII码 对 应 于 字 符 B)。 失 之 毫 厘 , 谬 以 千 里2.复 合 赋 值 符 及 表 达 式在 赋 值 符 “ =” 之 前 加 上 其 它 二 目 运 算 符 可 构 成 复合 赋 值 符 。 如 +=,-=,*=, =,%=,=, y=(x=a+b),(b+c); z=(x=a+b),(b+c); printf(z=%d,y=%d,x=%d,z,y,x); a-2,b-4,c-6,x-0,y-0 x-a+b,y-x z- b+c本 例 中 , z等 于 整 个 逗 号 表 达 式 的 值 , 也 就 是 表 达 式 2的 值 , x是 第 一 个 表 达 式 的 值 。 失 之 毫 厘 , 谬 以 千 里 2.程 序 中 使 用 逗 号 表 达 式 , 通 常 是 要 分 别 求 逗 号 表 达 式 内 各 表 达 式 的 值 , 并 不 一 定 要 求 整 个 逗 号 表 达 式 的 值 。 3.并 不 是 在 所 有 出 现 逗 号 的 地 方 都 组 成 逗 号 表 达 式 , 如 在 变 量 说 明 中 , 函 数 参 数 表 中 逗 号 只 是 用 作 各 变 量 之 间 的 间 隔 符 。对 于 逗 号 表 达 式 还 要 说 明 几 点 : 1.逗 号 表 达 式 一 般 形 式 中 的 表 达 式 1和 表 达 式 2 也 可 以 又 是 逗 号表 达 式 。 例 如 : 表 达 式 1, (表 达 式 2, 表 达 式 3) 形 成 了 嵌 套 情 形 。 因 此 可 以 把 逗 号 表 达 式 扩 展 为 以 下 形 式 : 表 达 式 1, 表 达 式 2, 表 达 式 n 整 个 逗 号 表 达 式 的 值 等 于 表 达 式 n的 值 。 失 之 毫 厘 , 谬 以 千 里3、 11 位 运 算 C语 言 是 为 描 述 系 统 而 设 计 的 , 因 此 它 具 有 汇 编 语 言 所 能 完成 的 一 些 功 能 。 在 系 统 软 件 中 , 常 要 处 理 二 进 制 位 的 问 题 。 例如 :将 一 个 存 储 单 元 中 的 各 二 进 位 左 移 或 右 移 一 位 , 两 个 数 按 位相 加 等 等 。 C语 言 提 供 了 位 运 算 功 能 , 与 其 他 语 言 相 比 更 具 有 其 独特 的 优 越 性 。 所 谓 位 运 算 是 指 进 行 二 进 制 位 的 运 算 。 失 之 毫 厘 , 谬 以 千 里1.位 运 算 和 位 运 算 符C语 言 提 供 了 下 列 位 运 算 符 : 运 算 符 含 义 解 释 a=a00111100 左 移 1位 相 当 于 该 数 乘 以 2。 但 此 结 论 只 适 合 于 该 数 左 移 时舍 弃 位 中 不 包 含 1的 情 况 。6、 右 移 运 算 符 例 如 : a=15;a=a2; 00001111=00000011 右 移 1位 相 当 于 该 数 除 以 2。 但 是 需 注 意 到 符 号 位 问 题 。 失 之 毫 厘 , 谬 以 千 里7、 位 运 算 赋 值 运 算 符 位 运 算 符 与 赋 值 运 算 符 可 以 组 成 复 合 赋 值 运 算 符 如 :&=, |=, =, =, = 例 如 : a&=b 相 当 于 a=a&b.8、 不 同 长 度 数 据 进 行 位 运 算 如 果 两 个 数 据 长 度 不 同 , 进 行 位 运 算 时 , 系 统 会 将 二 者 按右 端 对 齐 。 如 : a&b ( a为 long ,b为 int) 注 意 : 如 果 b为 正 数 , 则 左 侧 16位 补 0。 若 b为 负 数 , 左 侧补 满 1。 如 果 b为 无 符 号 整 数 , 则 左 侧 补 满 0。 失 之 毫 厘 , 谬 以 千 里 小 结1. 的 数 据 类 型 基 本 类 型 , 构 造 类 型 , 指 针 类 型 , 空 类 型2.基 本 类 型 的 分 类 及 特 点 类 型 说 明 符 字 节 数 值 范 围 字 符 型 char 1 C字 符 集 基 本 整 型 int 2 -32768 32767 短 整 型 short int 2 -32768 32767 长 整 型 long int 4 -2 31 231-1 无 符 号 型 unsigned 2 0 65535 无 符 号 长 整 型 unsigned long 4 0 232-1 单 精 度 实 型 float 4 10-38 10+38 双 精 度 实 型 double 8 10-308 10+308 失 之 毫 厘 , 谬 以 千 里3.常 量 前 缀 、 后 缀 前 缀 : 八 进 制 整 常 数 加 0 十 六 进 制 整 常 数 加 0X或 0 x 后 缀 ?长 整 型 加 L或 l 4.常 量 类 型 整 数 , 长 整 数 , 无 符 号 数 , 浮 点 数 , 字 符 , 字 符 串 ,符 号 常 数 , 转 义 字 符 。5.数 据 类 型 转 换自 动 转 换 :在 不 同 类 型 数 据 的 混 合 运 算 中 , 由 系 统 自 动 实现 转 换 , 由 少 字 节 类 型 向 多 字 节 类 型 转 换 。 不 同 类 型 的量 相 互 赋 值 时 也 由 系 统 自 动 进 行 转 换 , 把 赋 值 号 右 边 的 类型 转 换 为 左 边 的 类 型 。强 制 转 换 :由 强 制 转 换 运 算 符 完 成 转 换 。 失 之 毫 厘 , 谬 以 千 里7.表 达 式 表 达 式 是 由 运 算 符 连 接 常 量 、 变 量 、 函 数 所 组 成 的式 子 。 每 个 表 达 式 都 有 一 个 值 和 类 型 。 表 达 式 求 值 按运 算 符 的 优 先 级 和 结 合 性 所 规 定 的 顺 序 进 行 。6.运 算 符 优 先 级 和 结 合 性 一 般 而 言 , 单 目 运 算 符 优 先 级 较 高 , 赋 值 运 算 符 优先 级低 。 算 术 运 算 符 优 先 级 较 高 , 关 系 和 逻 辑 运 算 符 优 先 级较 低 。 多 数 运 算 符 具 有 左 结 合 性 , 单 目 运 算 符 、 三 目 运算 符 、 赋 值 运 算 符 具 有 右 结 合 性 。 失 之 毫 厘 , 谬 以 千 里8.位 运 算 符 : 运 算 符 含 义 & 按 位 与 | 按 位 或 按 位 异 或 单 目 取 反 右 移
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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