C语言基本算数运算符如下表:
名称 符号 说明 加法运算符 + 双目运算符,即应有两个量参与加法运算。如a+b,4+8等。具有右结合性。 减法运算符 - 双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。 乘法运算符 * 双目运算符,具有左结合性。 除法运算符 / 双目运算符,具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。 求余运算符(模运算符) % 双目运算符,具有左结合性。要求参与运算的量均为整型,不能应用于float或double类型。 求余运算的结果等于两数相除后的余数,整除时结果为0。 双目运算符+和-具有相同的优先级,它们的优先级比运算符*、/和%的优先级低,而运算符*、/和%的优先级又比单目运算符 +(正号) 和 -(负号) 的优先级低。
1 #include<stdio.h> 2 int main(void){ 3 printf("\n\n%d,%d\n",20/7,-20/7); 4 printf("%f,%f\n",20.0/7,-20.0/7); 5 return 0; 6 }本例中,20/7,-20/7的结果均为整型,小数全部舍去。而20.0/7和-20.0/7由于有实数参与运算,因此结果也为实型。
#include<stdio.h> int main(void){ printf("%d\n",100%3); return 0; }本例输出100除以3所得的余数1。
自增、自减运算符
自增1运算符记为“++”,其功能是使变量的值自增1;自减1运算符记为“--”,其功能是使变量值自减1。
自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式:
- ++i:i自增1后再参与其它运算。
- --i:i自减1后再参与其它运算。
- i++:i参与运算后,i的值再自增1。
- i--:i参与运算后,i的值再自减1。
在理解和使用上容易出错的是i++和i--。 特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。
#include<stdio.h> int main(void){ int i=8; printf("%d\n",++i); printf("%d\n",--i); printf("%d\n",i++); printf("%d\n",i--); printf("%d\n",-i++); printf("%d\n",-i--); return 0; }i的初值为8,第4行i加1后输出故为9;第5行减1后输出故为8;第6行输出i为8之后再加1(为9);第7行输出i为9之后再减1(为8) ;第8行输出-8之后再加1(为9),第9行输出-9之后再减1(为8)。
1 #include<stdio.h> 2 int main(void){ 3 int i=5,j=5,p,q; 4 p=(i++)+(i++)+(i++); 5 q=(++j)+(++j)+(++j); 6 printf("p=%d,q=%d,i=%d,j=%d",p,q,i,j); 7 return 0; 8 }这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q 的值则不然,q=(++j)+(++j)+(++j)应理解为j先自增1,再参与运算,由于j自增1三次后值为8,三个8相加的和为24,j 的最后值仍为8。
对于 p=(i++)+(i++)+(i++),先计算 (i++)+(i++),因为是“后自加”,等价于 5+5,结果为10;然后计算 10+(i++),等价于 10+5,结果为 15。
对于 q=(++j)+(++j)+(++j),先计算 (++j)+(++j),因为是“前自加”,要先计算两次 ++j,此时 j=7,然后相加,相当于 7+7,结果为14;然后计算 14+(++j),相当于 14+8,结果为22。
C语言算术运算符
时间: 2024-12-12 12:17:55
C语言算术运算符的相关文章
算术运算符和算术表达式(优先级,结合性等)
% 得到余数 7 % 2 得到1 运算符的优先级 C语言中,运算符的运算优先级共分为15级.1级最高, 15级最低.在表达式中, 优先级较高 的先于优先级较低的进行晕死.而在一个运算量两侧的运算符优先级相同时, 则按运算符的 结合性所规定的结合方向处理. 运算符的结合性 c语言中各运算符的结合性分为两种, 即左结合性(自左至右)和右结合性(自右至左). 例如: 左结合性: 算术运算符的结合性是自左至右,即先左后右.如有表达式x-y+z则y应先与“-”结合,执行 x-y,在+z的yuns.这种
C语言--基本运算符
一.算术运算符 1. 加法运算符 + * 除了可以进行加法运算外,还可以表示正号:+521 2.减法运算符 — * 除了可以进行减法运算外,还可以表示负号:—741 3.乘法运算法符 * * 请注意符号不是X,而是* 4.除法运算符 / * 请注意符号不是÷,而是/ * 整数除以整数还是整数,1/2的值不是0.5而是 0. 5.区域运算符 % * 取余就是两个整数相除之后的余数 * %两侧只能是整数 * 正负性取决于%左侧的数值的符号 6.赋值运算符 = *简单赋值:int a =10,a=10
算术运算符和表达式
C语言的运算符范围很宽,除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,下图是C运算符的分类 1 算术表达式 用算术运算符和括号将运算对象(也称操作数)连接起来的,符合语法规则的式子成为算术表达式.运算对象包括 常量 变量 函数. C语言规定了各种运算符的结合方向,这是C语言特点之一,是别的高级语言所没有的.算术运算符的结合方向为"自左至右"又称为"左结合性",以后还可以看到有些运算符的结合方向为"自右至左"即"右结合
C语言的运算符
算术运算符 + - * /(除) %(取余) 除法运算的结果与运算对象有关,两个数都为int,则商也是int:被除数和除数只要有一个含小数位,结果就为小数. 取余的运算对象必须为整数,余数的符号与被除数相同. 13%-3==1 -13%3==-1 关系运算符 > >= < <= != (不等于) ==(等于) 逻辑运算符 && || ! 赋值运算符 = += *= /=
iOS开发入门 ? C语言(运算符)
算术运算符: + 加法运算符 - 减法运算符,或负值运算符 * 乘法运算符 / 除法运算符 % 模运算符,或称取余运算符,要求%两侧均为整型数据 % 取模(取余)运算符的注意事项: 1)取模运算符的操作数只能是整数 2)取模运算符的正负性取决于前面那个操作数正负 3)如果取模运算的左边小于右边, 那么结果就是左边 取余(模运算):5%3=2; -5%3=-2; 5%-3=2; -5%-3=-2 (余数的符号与被除数一致!) 2%9=2; 算术运算的注意点: 自动类型转换 int a
Python算术运算符
Python算术运算符 以下假设变量: a=10,b=20: 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 / 除 - x除以y b / a 输出结果 2 % 取模 - 返回除法的余数 b % a 输出结果 0 ** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000
javascript运算符——算术运算符
× 目录 [1]一元加 [2]一元减 [3]递增[4]递减[5]加法[6]减法[7]乘法[8]除法[9]求余 前面的话 javascript中的算术操作主要通过算术运算符来实现,本文将介绍算术运算符的内容.算术运算符包括一元算术运算符和二元算术运算符两种 一元算术运算符 一元算术运算符用于一个单独的操作数,并产生一个新值.在javascript中,一元运算符具有很高的优先级,而且都是右结合(right-associative) 一元算术运算符包括一元加法(+).一元减法(-).递增(++)和递减
C语言位运算符:与、或、异或、取反、左移和右移
语言位运算符:与.或.异或.取反.左移和右移 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型. C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1~ 取反 ~
C++算术运算符与算术表达式
基本的算术运算符 在本章中主要介绍算术运算符与算术表达式,赋值运算符与赋值表达式,逗号运算符与逗号表达式,其他运算符将在以后各章中陆续介绍. 常见算数运算符 运算符 说明 举例 + 加法运算符,或正值运算符 3+5,+3 - 减法运算符,或负值运算符 5-2,-3 * 乘法运算符 3*5 / 除法运算符 5/3 % 模运算符,或称求余运算符 %两侧均应为整型数据,如7%4的值为3 需要说明,两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分.但是,如果除数或被除数中有一个为负值,则舍入