C+语言程序设计 清华大学郑莉 基 逻辑运算与逻辑表达式 本 数 ●“&&”的“短路特性” 据 表达式1&&表达式2 类 先求解表达式1 型 若表达式1的值为false,则最终结果为 和 false,不再求解表达式2 表 若表达式1的结果为true,则求解表达式 2,以表达式2的结果作为最终结果 式 ● “”也具有类似的特性
C++语言程序设计 清华大学 郑莉 26 逻辑运算与逻辑表达式 ⚫ “&&” 的“短路特性” 表达式1 && 表达式2 –先求解表达式1 –若表达式1的值为false,则最终结果为 false,不再求解表达式2 –若表达式1的结果为true,则求解表达式 2,以表达式2的结果作为最终结果 ⚫ “||”也具有类似的特性 基 本 数 据 类 型 和 表 达 式
C+语言程序设计 清华大学郑莉 条件运算符与条件表达式 基 本 ● 一般形式 据 表达式1?表达式2:表达式3 表达式1必须是boo1类型 类 ●执行顺序 黏 先求解表达式1, 若表达式l的值为true, 则求解表达式2, 表 表达式2的值为最终结果 达 若表达式1的值为false, 则求解表达式3, 表达式3的值为最终结果 ●例:x=a>b?a:b;
C++语言程序设计 清华大学 郑莉 27 条件运算符与条件表达式 ⚫ 一般形式 表达式1?表达式2:表达式3 表达式1 必须是 bool 类型 ⚫ 执行顺序 –先求解表达式1, –若表达式1的值为true,则求解表达式2, 表达式2的值为最终结果 –若表达式1的值为false,则求解表达式3, 表达式3的值为最终结果 ⚫ 例: x = a > b ? a : b; 基 本 数 据 类 型 和 表 达 式
C++语言程序设计 清华大学郑莉 条件运算符与条件表达式 本 数 ●注意: 据 条件运算符优先级高于赋值运算符,低 类 于逻辑运算符 表达式2、3的类型可以不同,条件表达 式的最终类型为2和3中较高的类型。 表 例:x=a>b?a:b; ① ②
C++语言程序设计 清华大学 郑莉 28 条件运算符与条件表达式 ⚫ 注意: –条件运算符优先级高于赋值运算符,低 于逻辑运算符 –表达式2、3的类型可以不同,条件表达 式的最终类型为 2 和 3 中较高的类型。 ⚫ 例: x = a > b ? a : b; 基 本 数 据 类 型 和 表 达 式 ① ②
C++语言程序设计 清华大学郑莉 基 sizeof运算符 本 数 ● 语法形式 据 sizeof(类型名) 或sizeof表达式 型 ·结果值: “类型名”所指定的类型或“表达式”的结果 类型所占的字节数。 达式 ·例: sizeof(short) sizeof x
C++语言程序设计 清华大学 郑莉 29 sizeof 运算符 ⚫ 语法形式 sizeof (类型名) 或 sizeof 表达式 ⚫ 结果值: “类型名”所指定的类型或“表达式”的结果 类型所占的字节数。 ⚫ 例: sizeof(short) sizeof x 基 本 数 据 类 型 和 表 达 式
C+语言程序设计 清华大学郑莉 位运算: 按位与 本数据类 ·运算规则 将两个运算量的每一个位进行逻辑与操作 举例:计算3&5 3: 00000011 5:(&)00000101 3&5: 00000001 型和表达式 用途: 将某一位置0,其他位不变。例如: 将char型变量a的最低位置0:a=a&0xfe; 取指定位。 例如:有char c;inta; 取出a的低字节,置于c中:c=a&0xff; 30
C++语言程序设计 清华大学 郑莉 30 位运算——按位与(&) ⚫ 运算规则 –将两个运算量的每一个位进行逻辑与操作 ⚫ 举例:计算 3 & 5 3: 0 0 0 0 0 0 1 1 5:(&) 0 0 0 0 0 1 0 1 3 & 5: 0 0 0 0 0 0 0 1 ⚫ 用途: –将某一位置0,其他位不变。例如: 将char型变量a的最低位置0: a = a & 0xfe; –取指定位。 例如:有char c; int a; 取出a的低字节,置于c中:c=a & 0xff; 基 本 数 据 类 型 和 表 达 式