c语言运算符(最基本的哟~~)
(7页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
19.90 积分
C 语言运算符(最基本的哟~~)语言运算符(最基本的哟~~) 作者:yeyu 日期:2007-12-06字体大小: 小 中 大无论是加减乘除还是大于小于,都需要用到运算符,在 C 语言中的运算符和我们平时用的基本上都差不多。运算符包括赋值运算符、算术运算符、逻辑运算符、位逻辑运算符、位移运算符、关系运算符、自增自减运算符。大多数运算符都是二目运算符,即运算符位于两个表达式之间。单目运算符的意思是运算符作用于单个表达式。一、赋值运算符赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。符号为‘=’。这里并不是等于的意思,只是赋值,等于用‘==’表示。注意:赋值语句左边的变量在程序的其他地方必须要声明。得已赋值的变量我们称为左值,因为它们出现在赋值语句的左边;产生值的表达式我们称为右值,因为她它们出现在赋值语句的右边。常数只能作为右值。例如:count=5;total1=total2=0;第一个赋值语句大家都能理解。 第二个赋值语句的意思是把 0 同时赋值给两个变量。这是因为赋值语句是从右向左运算的,也就是说从右端开始计算。这样它先 total2=0;然后 total1=total2;那么我们这样行不行呢?(total1=total2)=0;这样是不可以的,因为先要算括号里面的,这时 total1=total2 是一个表达式,而赋值语句的左边是不允许表达式存在的。二、算术运算符在 C 语言中有两个单目和五个双目运算符。符号 功能+ 单目正- 单目负* 乘法/ 除法% 取模+ 加法- 减法下面是一些赋值语句的例子, 在赋值运算符右侧的表达式中就使用了上面的算术运算符:Area=Height*Width;num=num1+num2/num3-num4;运算符也有个运算顺序问题,先算乘除再算加减。单目正和单目负最先运算。取模运算符(%)用于计算两个整数相除所得的余数。例如:a=7%4;最终 a 的结果是 3,因为 7%4 的余数是 3。那么有人要问了,我要想求它们的商怎么办呢?b=7/4;这样 b 就是它们的商了,应该是 1。也许有人就不明白了,7/4 应该是 1.75,怎么会是 1 呢?这里需要说明的是,当两个整数相除时,所得到的结果仍然是整数,没有小数部分。要想也得到小数部分,可以这样写 7.0/4 或者 7/4.0,也即把其中一个数变为非整数。那么怎样由一个实数得到它的整数部分呢?这就需要用强制类型转换了。例如:a=(int) (7.0/4);因为 7.0/4 的值为 1.75,如果在前面加上(int)就表示把结果强制转换成整型,这就得到了 1。那么思考一下 a=(float) (7/4);最终 a 的结果是多少?单目减运算符相当于取相反值,若是正值就变为负值,若是负数就变为正值。单目加运算符没有意义,纯粹是和单目减构成一对用的。三、逻辑运算符逻辑运算符是根据表达式的值来返回真值或是假值。其实在 C 语言中没有所谓的真值和假值,只是认为非 0 为真值,0 为假值。符号 功能0||-2!4;当表达式进行a||b-1;因为 a=2,为真值,所以不管 b-1 是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。四、关系运算符关系运算符是对两个表达式进行比较,返回一个真/假值。符号 功能> 大于= 大于等于>= 右移赋值与 Total+=3;有没有区别?答案是有的,对于A=A+1,表达式 A 被计算了两次,对于复合运算符 A+=1,表达式 A 仅计算了一次。一般的来说,这种区别对于程序的运行没有多大影响,但是当表达式作为函数的返回值时,函数就被调用了两次(以后再说明),而且如果使用普通的赋值运算符,也会加大程序的开销,使效率降低。七、条件运算符条件运算符(?:)是 C 语言中唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回两外两个表达式中的一个。?:在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式 2 的值;如果为假,则返回表达式 3 的值。例如:a=(b>0)?b:-b;当 b>0 时,a=b;当 b 不大于 0 时,a=-b;这就是条件表达式。其实上面的意思就是把 b 的绝对值赋值给 a。八、逗号运算符在 C 语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。假设 b=2,c=7,d=5,a1=(++b,c--,d+3);a2=++b,c--,d+3;对于第一行代码,有三个表达式,用逗号分开,所以最终的值应该是最后一个表达式的值,也就是 d+3,为 8,所以 a=8。对于第二行代码,那么也是有三个表达式,这时的三个表达式为 a2=++b、c--、d+3,(这是因为赋值运算符比逗号运算符优先级高)所以最终表达式的值虽然也为 8,但 a2=3。还有其他的如位逻辑运算符,位移运算符等等。九、优先级和结合性 从上面的逗号运算符那个例子可以看出,这些运算符计算时都有一定的顺序,就好象先要算乘除后算加减一样。优先级和结合性是运算符两个重要的特性,结合性又称为计算顺序,它决定组成表达式的各个部分是否参与计算以及什么时候计算。下面是 C 语言中所使用的运算符的优先级和结合性:优先级 运算符 结合性(最高) () [] -> . 自左向右! ~ ++ -- + - * & sizeof 自右向左* / % 自左向右+ - 自左向右> 自左向右>= 自左向右== != 自左向右& 自左向右^ 自左向右| 自左向右&& 自左向右|| 自左向右?: 自右向左= += -= *= /= %= &= ^= |= >= 自右向左(最低) , 自左向右在该表中,还有一些运算符我们没有介绍,如指针运算符、sizeof 运算符、数组运算符[]等等。 关 键 词: 语言 运算 基本
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。