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

2022-12-29 0 591

运 算 符

(1) 微积分操作符(+, -, *, /, %, ++, –)。

(2) 亲密关系操作符(<, >, <=, >=, ==, ![KG-*8]=)。

(3) 方法论操作符(!, &&, ||)。

(4) 位操作符(<<, >>, ~, |, ^, &)。

(5) 表达式操作符(=, 或其双眼操作符的扩充表达式操作符)。

(6) 前提操作符(? :)。

(7) 双引号操作符(,)。

(8) 操作符操作符(*, &)。

(9) 求表头操作符(sizeof)。

(10) 强制性隐式操作符((类别))。

(11) 量纲操作符(·, ->)。

(12) 负号操作符([ ])。

(13) 方括号操作符(( ))。

微积分操作符和赋值操作符

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

说明: 

(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。其余类推。 这样书写简练,运行速度快,也提高了编译效率。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务