C语言运算符

 

C语言的运算符

       运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符:

       1)算术运算符

       2)赋值运算符

       3)关系运算符

       4)逻辑运算符

       5)位运算符

       本章将只介绍算术运算符和赋值运算符,关系运算符和逻辑运算符放在其它章节中介绍,位运算符了解即可,不深入学习。

算术运算符

       下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 18,变量 B 的值为 5,则:

运算符

描述

实例

+

两个数相加

A+B 将得到 23

-

一个数减另一个数

A-B 将得到 13

*

两个数相乘

A*B 将得到 90

/

分子除以分母

A/B 将得到 3.6

%

余数运算符,整除后的余数

B%A 将得到 3

++

自增运算符,整数值增加 1

A++ 将得到 19

--

自减运算符,整数值减少 1

A-- 将得到 17

       示例(book15.c)

      

       运行结果

       

       变量的自增或自减有两种写法:

       变量名++;    // 表示在本次使用变量后再自增;

       ++变量名;     // 表示在本次使用变量前自增;

       变量名--;    // 表示在本次使用变量后再自增;

       --变量名;     // 表示在本次使用变量前自减;

       示例(book16.c)

       

       运行结果

      

赋值运算符

       下表列出了 C 语言支持的赋值运算符:

运算符

描述

实例

=

简单的赋值运算符,把右边操作数的值赋给左边操作数

C = A + B 将把 A + B 的值赋给 C

+=

加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数

C += A 相当于 C = C + A

-=

减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数

C -= A 相当于 C = C - A

*=

乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数

C *= A 相当于 C = C * A

/=

除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数

C /= A 相当于 C = C / A

%=

求余数且赋值运算符,求两个操作数的模赋值给左边操作数,浮点数不适用取余数。

C %= A 相当于 C = C % A

       赋值运算符还包括了位运算,位运算不好理解,并且极少使用,所以不讲了。

       赋值运算符支持的是C语言的基本数据类型,包括char int double,字符串(字符数组)不能这么赋值。

       示例(book17.c)

      

       运行结果

      

sizeof运算符

       sizeof是C语言的关键字,发挥着运算符的作用。它主要用来计算某一个变量在当前系统的内存中所需占用的字节数。变量的类型包括char、int、double、数组、结构体和其它自定义的数据类型。

       sizeof不是函数。产生这样的疑问主要是因为sizeof的书写确实有点像函数,比如:i = sizeof(int);这样的写法,就很容易让人误以为sizeof是一个函数。sizeof有两种写法:

       1、用于数据类型 

              sizeof使用形式:sizeof(type)

       数据类型必须用括号括住。如sizeof(int)。 

              printf("sizeof(int)=%d\n",sizeof(int));   // 输出结果:sizeof(int)=4

2、用于变量 

              sizeof使用形式:sizeof(var_name)或sizeof var_name 

       变量名可以不用括号括住。如sizeof(var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。 

       sizeof是很常用的运算符,如果你现在理解不了没有关系,以后我们会经常使用它,并且很简单。

              printf("sizeof dd =%d\n",sizeof dd);     // 输出结果:sizeof dd =8

              printf("sizeof(dd)=%d\n",sizeof(dd));     // 输出结果:sizeof(dd)=8

运算符的优先级

       在+-*/四则运算符中,*/的优先级高于+-,在C语言中,其它的运算符都有优先级,我不想介绍它们的优先级,因为我写了二十年的程序,也记不住各种运算符的优先级的关系,我也没打算记住。

       我不建议程序员记住各种运算符的优先级,而是用括号可以解决全部的问题,括号的优先级是最高的,括号中的表达式会优先执行,这样各个运算符的执行顺序就一目了然了。

              int d = a + (b * c);

版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值