c语言求1减2加3减4加5,C语言运算符

Turbo C的运算符非常丰富, 主要分为三大类: 算术运算符,  关系运算符与

逻辑运算符, 按位运算符。除此之外, 还有一些用于完成特殊任务的运算符。下

面分别进行介绍。

5.1 算术运算符

Turbo C的算术运算符如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

操作符                          作用

────────────────────────────

+                        加, 一目取正

-                        减, 一目取负

*                             乘

/                             除

%                            取模

--                            减1

++                            加1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

一、一目和二目操作

一目操作是指对一个操作数进行操作。例如: -a是对a进行一目负操作。

二目操作(或多目操作)是指两个操作数(或多个操作数)进行操作。

在Turbo C中加、减、乘、除、取模的运算与其它高级语言相同。需要注意

的是除法和取模运算。

例如:

15/2    是15除以2商的整数部分7

15%2    是15除以2的余数部分1

对于取模运算符"%", 不能用于浮点数。

另外, 由于Turbo C中字符型数会自动地转换成整型数,  因此字符型数也可

以参加二目运算。

例如:

main()

{

char m, n;     /*定义字符型变量*/

m='c';         /*给m赋小写字母'c'*/

n=m+'A'-'a';   /*将c中的小写字母变成大写字母'B'后赋给n*/

...

}

上例中m='c'即m=98, 由于字母A和a的ASCII码值分别为65和97。这样可以将

小写字母变成大写字母, 反之, 如果要将大写字母变成小写字母,  则用c+ 'a'

-'A'进行计算。

二、增量运算

在Turbo C中有两个很有用的运算符, 在其它高级语言中通常没有。这两个

运算符就是增1和减1运算符"++"和"--", 运算符"++"是操作数加1, 而"--" 则是

操作数减1。

例如:

x=x+1         可写成x++, 或++x

x=x-1         可写成x--, 或--x

x++(x--)与++x(--x)在上例中没有什么区别, 但x=m++和x=++m却有很大差别。

x=m++    表示将m的值赋给x后, m加1。

x=++m    表示m先加1后, 再将新值赋给x。

三、赋值语句中的数据类型转换

类型转换是指不同类型的变量混用时的类型改变。

在赋值语句中, 类型转换规则是:

等号右边的值转换为等号左边变量所属的类型。

例如:

main()

{

int i, j;      /*定义整型变量*/

float f, g=2.58;    /*定义浮点型变量*/

f=i*j;         /*i与j的乘积是整型数, 被转换成为浮点数赋给f*/

i=g;           /*g中的浮点型数转换成为整型数赋给i*/

...

}

由于Turbo C按上述数据类型转换规则, 因此在作除法运算时应特别注意。

例如:

main()

{

float f;

int i=15;

f=i/2;

}

上面程序经运行后, f=7并不等于准确值7.5。正确的程序应该是:

main()

{

float f;

int i=15;

f=i/2.0;

}

也可直接将i定义为浮点数。

5.2 关系运算符和逻辑运算符

一、逻辑运算符

逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。

Turbo C的逻辑运算符如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

操作符                      作用

─────────────────────────────

&&                       逻辑与

||                       逻辑或

!                        逻辑非

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

二、关系运算符

关系运算符是比较两个操作数大小的符号。

Turbo C的关系运算符如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

操作符                        作用

─────────────────────────────

>                           大于

>=                        大于等于

<=                        小于等于

==                          等于

!=                         不等于

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

关系运算符和逻辑运算符的关键是真(true)和假(false)的概念。Turbo C中

true可以是不为0的任何值, 而false则为0。 使用关系运算符和逻辑运算符表达

式时, 若表达式为真(即true)则返回1, 否则, 表达式为假(即false),  则返回0。

例如:

100>99         返回1

10>(2+10)      返回0

!1&&0          返加0

对上例中表达式!1&&0, 先求!1和先求1&&0将会等于出不同的结果,  那么何

者优先呢? 这在Turbo C中是有规定的。 有关运算符的优先级本节后面将会讲到。

5.3 按位运算符

Turbo C和其它高级语言不同的是它完全支持按位运算符。这与汇编语言的

位操作有些相似。

Turbo C中按位运算符有:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

操作符                       作用

────────────────────────────

&                        位逻辑与

|                        位逻辑或

^                       位逻辑异或

-                        位逻辑反

>>                         右移

按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符

型和整数型变量以及它们的变体, 对其它数据类型不适用。

关系运算和逻辑运算表达式的结果只能是1或0。 而按位运算的结果可以取0

或1以外的值。

要注意区别按位运算符和逻辑运算符的不同, 例如, 若x=7, 则x&&8 的值为

真(两个非零值相与仍为非零), 而x&8的值为0。

移位运算符">>"和"

右移:     变量名>>移位的位数

左移:     变量名

Turbo C中的移位不是循环移动的。

5.4 Turbo C的特殊运算符

一、"?"运算符

"?"运算符是一个三目运算符, 其一般形式是:

?:;

"?"运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把

它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为

整个表达式的值。

例如:

main()

{

int x, y;

x=50;

y=x>70?100:0;

}

本例中, y将被赋值0。如果x=80, y将被赋值100。

因此, "?"运算符可以代替某些if-then-else形式的语句。

二、"&"和"*"运算符

"&"运算符是一个返回操作数地址的单目操作符。

"*"运算符是对"&"运算符的一个补充, 它返回位于这个地址内的变量值, 也

是单目操作符。

例如:

main()

{

int i, j, *m;

i=10;

m=&i;          /*将变量i的地址赋给m*/

j=*m;          /*地址m所指的单元的值赋给j*/

}

上面程序运行后, i=10, m为其对应的内存地址, j的值也为10。

三、","运算符

","运算符用于将多个表达式串在一起, ","运算符的左边总不返回, 右边表

达式的值才是整个表达式的值。

例如:

main()

{

int x, y;

x=50;

y=(x=x-5, x/5);

}

上面程序执行后y值为9, 因为x的初始值为50, 减5后变为45, 45除5为9赋给

y。

四、sizeof运算符

sizeof运算符是一个单目运算符, 它返回变量或类型的字节长度。

例如:

sizeof(double) 为8

sizeof(int)    为2

也可以求已定义的变量, 例如:

float f;

int i;

i=sizeof(f);

则i的值将为4。

五、联合操作

Turbo C中有一特殊的简写方式, 它用来简化一种赋值语句,  适用于所有的

双目运算符。其一般形式为:

=

相当于

=

例如:

a=a+b         可写成    a+=b

a=a&b         可写成    a&=b

a=a/(b-c)     可写成    a/=b-c

5.5 Turbo C运算符的优先级

Turbo C规定了运算符的优先次序即优先级。 当一个表达式中有多个运算符

参加运算时, 将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低,

同一行优先级相同。

例如:

表达式 10>4&&!(100<99)||3<=5 的值为1

表达式 10>4&&!(100<99)&&3<=5 的值为0

Turbo C运算符的优先次序

━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━

表达式                                             ┃优先级

────────────────────────────╂────

()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)  ┃ 最高

────────────────────────────┃  ↑

!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址) ┃  │

────────────────────────────┃  │

*(指针所指内容)  type(函数说明)  sizeof(长度计算)       ┃  │

────────────────────────────┃  │

*(乘)     /(除)     %(取模)                                  ┃  │

────────────────────────────┃  │

+(加)     -(减)                                                 ┃  │

────────────────────────────┃  │

<>(位右移)                              ┃  │

────────────────────────────┃  │

(大于)   >=(大于等于)       ┃  │

────────────────────────────┃  │

==(等于)       !=(不等于)                                    ┃  │

────────────────────────────┃  │

&(位与)                                                          ┃  │

────────────────────────────┃  │

^(位异或)                                                       ┃  │

────────────────────────────┃  │

|(位或)                                                           ┃  │

────────────────────────────┃  │

&&(逻辑与)                                                      ┃  │

────────────────────────────┃  │

||(逻辑或)                                                       ┃  │

────────────────────────────┃  │

?:(?表达式)                                                      ┃  │

────────────────────────────┃  │

=    +=   -=(联合操作)                                       ┃  │

────────────────────────────┃  │

,(逗号运算符)                                                   ┃ 最低

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

From: http://www.cnread.net/cnread1/dnwl/cxsj/c/cyyb/010.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值