C语言中都有那些运算符?

 

(1) 算术运算符(+, -, *, /, %, ++, --)

(2) 关系运算符(<, >, <=, >=, ==, ![KG-*8]=)

(3) 逻辑运算符(!, &&, ||)

(4) 位运算符(<<, >>, ~, |, ^, &)

(5) 赋值运算符(= 及其双目运算符的扩展赋值运算符)

(6) 条件运算符(? :)

(7) 逗号运算符(,)

(8) 指针运算符(*, &)

(9) 求字节数运算符(sizeof)

(10) 强制类型转换运算符(( 类型))

(11) 分量运算符(·, ->)

(12) 下标运算符( )

(13) 圆括号运算符(( ))

  算术运算符和赋值运算符

说明: 

        (1) +, -, *, / 与数学中运算类似, 先乘除后加减, 也就是按优先级顺序进行运算,优先级小的先运算。要改变运算顺序只要加括号就可以了,括号全部为圆括号,必须注意括号的配对,它们适用于C 的几乎全部数据类型( 指针类除外) 的各种运算(++, -- 除外) 。除法运算符(/) 在用于两个整型数据运算时,其运算结果也是整数,余数总是被截掉。如1/2 的结果是0 10/3 的结果是3

(2) 求余运算符(%) 仅用于整型数据,不能用于实型和双精度实型。它的作用是取整数除法的余数。如1%2 的结果是1 10%3 的结果也是1  

        (3) 赋值运算符(=) 是将右边表达式的值赋给左边的变量。 赋值运算符左边必须是变量等有存贮单元的元素,而不能是常量或表达式。如x=x+1 是合法的,即把x 的值加上1 后再赋给x ,而x+1=x 却是非法的,因为x+1 不是一个存贮单元, 不能被赋以值。赋值号有别于数学中的等号,这一点是要注意的。

(4) ++, -- 仅用于整型变量,指针变量。用于整型变量在原值上加1 或减1 ;用于指针变量是取下一地址或上一地址。 关于指针部分的使用在第八章中介绍。 1 和减1 运算符用在表达式中时,写法是有差别的:如果运算符在操作数前面, 则在表达式引用该操作数前,先对其作加1 或减1 运算; 如果运算符在操作数之后,则先引用该操作数,然后再对它作加1 或减1 运算。考虑以下程序:

main( )

  { int x, y; 

 x=10; 

 y=++x;

 printf(″%d, %d\n″, x, y); 

  }

运算结果为 

11 11

此时y 的值和x 的值都为11 然而换一种写法: 

 main( )

   { int x, y; 

 x=10; 

 y=x++

 printf(″%d, %d\n″, x, y); 

   }

运行结果为 

11 10

此时y 的值是10 ,而x 的值自增后为11 。上述两种情况x 都变成了11 ,而y 的值却不同。它们的差别只在于给x 1 的时机不同。 此时赋值即为引用。 再如进行输出操作时,有以下程序段: 

 x=10; 

 printf(″x=%d\n″, ++x); 

运行结果为x=11 ,执行其下一条语句时x 也是11 而程序段:

 x=10; 

 printf(″x=%d\n″, x++)  

       (5) +, -, *, /, % 可以与赋值号= 组成复合赋值运算符+=, -=, *=, /=, %=  

       a=a+b 可以写成a+=b a=a*b 可以写成a*=b 。其余类推。 这样书写简练,运行速度快,也提高了编译效率。

 

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69914734/viewspace-2654629/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69914734/viewspace-2654629/

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值