运算符,表达式
来源:互联网 发布:程序员经常加班吗 编辑:程序博客网 时间:2024/06/10 02:58
运算符,表达式 黑色印记
1.运算符i++和++i的区别?
首先我们要知道++i是先自加后执行,i++是先执行后自加。所谓的后自加,是指该语句结束标志。C语言中,表示语句结束的有逗号和分号。
光说不练假把式,我们现在开始做几个练习,加深理解。
例: i = 2; 以下表达式分别是等于多少?
<span style="white-space:pre"></span>(1) i = (++i) + (i++) + (++i) + (i++);
<span style="white-space:pre"></span>(2) i = (i++) + i + (++i) + (++i);
(3) i = (++i) + (++i) + (i++) + (++i);
以上可知,(2)和(3)的答案分别是12,18。
拓展:i++,++i用在函数的传参。
例: 定义func(int a , int b); i = 2.
<span style="white-space:pre"></span>(1)func(i++ , i++);
<span style="white-space:pre"></span>(2)func(i++ , ++i);
<span style="white-space:pre"></span>(3)func(++i , i++);
<span style="white-space:pre"></span>(4)func(++i , ++i);
对应的a和b是多少?解决这题前,我们应该先知道以下几点:
1.函数的传参是从右开始的。
2.++i替换成变量名。
3.i++替换成数值。
4.逗号和分号都是结束标志。
比如例(2),从又开始,我们先计算++i,得到i等于3.再计算i++,得到i等于3,于是func(3,i)。最后i自加,得到i = 4.最终func(3,4)。
由上可知,(1) a = 3, b = 2.
(2) a = 3 , b = 4.
(3) a = 4 , b = 2.
(4) a = 4 , b = 4.
综上所诉,相信大家对++i以及i++有了一定的了解了。对于以下这题应该也就很容易了。
i = 2;func (i ++ , i , ++ i , i++,i++ ,i); (i也用变量名替换)
2.&&和|| (短路与和短路或)
对于这个知识点,同学们只要记住以下两句话。
&& 从左往右看,如果有一个为假,右边就不看了,直接退出判断。
|| 从左往右看,如果有一个为真,右边就不看了,直接退出判断。
3.什么时候使用&,什么时候使用|。
按位与运算通常用来对某些位清0或保留某些位。
按位或运算通常用来对某些位置1,其它位不变。
4.右移和左移的区别。
对于无符号的数而言,无论左移还是右移都是以0补位。
但是对于有符号的数而言,两者是有区别的。右移:用符号位补位。左移:用0补位。
5.掩码
掩码主要用来对特定的位进行处理的。
求掩码的公式有:mask = (unsigned int)(pow(2,m+1) - pow(2,n));
6.不使用中间变量,交换两个数的值。
有两种方法。
方法一:<span style="white-space:pre"></span>a = a ^ b;<span style="white-space:pre"></span>方法二: a = a +b;
<span style="white-space:pre"></span>b = a ^ b; <span style="white-space:pre"></span> b = a - b;
<span style="white-space:pre"></span>a = a ^ b;<span style="white-space:pre"></span> a = a - b;
方法二是有缺陷的,因为a+b是有可能溢出的,造成结果错误。但是方法一就不会了。
0 0
- 表达式和运算符
- 数据类型、运算符、表达式
- 运算符和表达式
- 表达式与运算符
- 运算符和表达式
- 运算符、表达式、语句
- 数据类型、运算符、表达式
- 数据类型、运算符、表达式
- 运算符、表达式
- 运算符、表达式、语句
- 运算符和表达式
- 运算符和表达式
- Java运算符、表达式
- 运算符和表达式
- 表达式和运算符
- 表达式和运算符
- 运算符和表达式
- 运算符和表达式
- 用AOM对象模式,实现QTP的远程调用
- Maven下载及安装配置
- html——<address>标签,为网页加入地址信息
- html——加入代码
- HTML5 data-* 自定义属性
- 运算符,表达式
- hdu 5533 Dancing Stars on Me 2015ACM/ICPC亚洲区长春站-重现赛
- ElasticSearch-2.2 windows 安装
- 使用Maven进行测试
- 学习方向--1专多能
- iOS TableView 使用详解
- django 数据库操作详解
- 13.6节练习
- MATLAB GUI对话框设计