正在加载图片...
(4)现在看选项A),先经p+=2运算,使p指向a[2],然后通过指针运算符*引用表达式 p++所指向的元素,我们知道,表达式p++的值就是p的值,所以*(p+)的值就等于* 的值,也即a[2]的值3,它正符合题目要求,因此,A)是正确答案。 B)表达式的值应该为4(先使p指向a[3],后通过p取值),C)表达式的值应该为4(先 使p指向a[3],再通过p取值),D)表达式的值也为4(先使p指向a[2],再通过p取值, 最后自增1)。 表达式运算问题之双目运算 双目运算概念 双目运算由双目运算符和参与运算的运算量构成。所谓双目运算符是指该运算符的 左右两侧都必须有运算量。 常见的双目运算符有:+、-、*、/、%等。诸如x+y、x/y、x*y等运算均为双目运 算 2.双目运算的要点 遇到双目运算,主要注意数据类型问题。具体有以下几点 (1)C语言要求:参与双目运算的两个运算量的类型必须一致 (2)双目运算的结果的类型必须与运算量的类型一致 (3)如果参与双目运算的两个运算量类型不一致,系统将自动把其中的一个进行类 型转换,使两个运算量的类型一致后再进行运算。自动转换的规则是:按“向高看齐” 的原则进行转换。在几个基本的数据类型中,由高到低的排列顺序为: double,int,char 比较:赋值运算中的类型转换 在赋值运算中,若遇到赋值号两侧的数据类型不一致,则也存在自动类型转换的问 题,不过,它的转换规则与双目运算符的转换规则有所不同,它是按“向左看齐”的原 则进行转换的,也即,是将赋值号右侧的量先转换为左侧的类型,然后再进行赋值。如 有intx;x=1.9;则先将1.9转换为int型,变为1后再赋值给x。再如, double y;y=2; 则先将2转换为2.0,然后再赋值给y,结果y的值为2.0。 举例说明: (1)表达式3+2中,3和2类型一致(都是整型),符合双目运算的类型一致要求, 所以直接运算,结果为5,也是整型 (2)表达式3/2中,3和2类型一致(都是整型),符合双目运算的类型一致要求, 所以直接运算,但要注意,由于两个运算量都是整型,所以运算结果也必须是整型,3 除以2的整数部分为1,所以3/2的结果是1,而不是2,更不是1.5,这是整数除法中 特别要注意的地方 又如19/5的整数部分是3,尽管其小数部分为0.8(超过了0.5),但19/5的结果仍 然应该等于其整数部分的值3,而不能进行四舍五入变为4(4)现在看选项 A),先经 p+=2 运算,使 p 指向 a[2],然后通过指针运算符*引用表达式 p++所指向的元素,我们知道,表达式 p++的值就是 p 的值,所以*(p++)的值就等于*p 的值,也即 a[2]的值 3,它正符合题目要求,因此,A)是正确答案。 B)表达式的值应该为 4(先使 p 指向 a[3],后通过 p 取值),C)表达式的值应该为 4(先 使 p 指向 a[3],再通过 p 取值),D)表达式的值也为 4(先使 p 指向 a[2],再通过 p 取值, 最后自增 1)。 表达式运算问题之双目运算 1. 双目运算概念 双目运算由双目运算符和参与运算的运算量构成。所谓双目运算符是指该运算符的 左右两侧都必须有运算量。 常见的双目运算符有:+、-、*、/、%等。诸如 x+y、x/y、x*y 等运算均为双目运 算。 2. 双目运算的要点 遇到双目运算,主要注意数据类型问题。具体有以下几点: (1) C 语言要求:参与双目运算的两个运算量的类型必须一致; (2) 双目运算的结果的类型必须与运算量的类型一致; (3) 如果参与双目运算的两个运算量类型不一致,系统将自动把其中的一个进行类 型转换,使两个运算量的类型一致后再进行运算。 自动转换的规则是:按“向高看齐” 的原则进行转换。在几个基本的数据类型中,由高到低的排列顺序为:double,int,char。 比较:赋值运算中的类型转换 在赋值运算中,若遇到赋值号两侧的数据类型不一致,则也存在自动类型转换的问 题,不过,它的转换规则与双目运算符的转换规则有所不同,它是按“向左看齐”的原 则进行转换的,也即,是将赋值号右侧的量先转换为左侧的类型,然后再进行赋值。如 有 int x; x=1.9; 则先将 1.9 转换为 int 型,变为 1 后再赋值给 x。再如,double y; y=2; 则先将 2 转换为 2.0,然后再赋值给 y,结果 y 的值为 2.0。 举例说明: (1) 表达式 3+2 中,3 和 2 类型一致(都是整型),符合双目运算的类型一致要求, 所以直接运算,结果为 5,也是整型。 (2) 表达式 3/2 中,3 和 2 类型一致(都是整型),符合双目运算的类型一致要求, 所以直接运算,但要注意,由于两个运算量都是整型,所以运算结果也必须是整型,3 除以 2 的整数部分为 1,所以 3/2 的结果是 1,而不是 2,更不是 1.5,这是整数除法中 特别要注意的地方。 又如 19/5 的整数部分是 3,尽管其小数部分为 0.8(超过了 0.5),但 19/5 的结果仍 然应该等于其整数部分的值 3,而不能进行四舍五入变为 4
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有