在c语言中有多少种运算符,C语言中都有那些运算符?

27482819259c8a9ed4ed4fbf4bdb17db.png

运 算 符

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

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

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

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

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

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

(7) 逗号运算符(,)。

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

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

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

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

(12) 下标运算符([ ])。

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

算术运算符和赋值运算符

42221396419f1dd83ee31073aa58c679.png

说明:

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值