Linux C语言学习---运算符

  • 算数运算符

   C提供的算术运算符:+,-,*,/,%,++,--。

C语言的算术运算符如下:

  • 例如,

int a=15, b=8,c;

double x=15, y=8, z;

c = a + b ;    // c 赋值为23

c = a - b;      // c 赋值为7

c = a * b;     // c 赋值为120

c = a / b;      // c 赋值为1

c = a % b;    // c 赋值为7

z = x + y ;     //z 赋值为23

z = x - y;        // z 赋值为7

z = x * y ;     // z 赋值为120

z = x / y ;     // z 赋值为1.875000

z = x % y ;     // 出错

int  x=5, y=9, z;

z =  ++x ;   // z赋值为6,x 变为6

z =  x++ ;   // z赋值为5,x 变为6

z =  --x ;    // z赋值为4,x 变为4

z =  x-- ;    // z赋值为5,x 变为4

z= ++x+y++ ;  // z赋值为15,x 变为6,y 变为10

z= --x+y++ ;   // z赋值为13,x 变为4,y 变为10

z= ++x+y-- ;   // z赋值为15,x 变为6,y 变为8

  • 逻辑关系运算符

C语言的关系运算符如下:

  • 例如,
    •   int  a=5, b=6;
    •   a>(b-1)        结果值为0 
    •   (a +1)== b     结果值为1
    •   a>=(b-2)      结果值为1
    •   a<100       结果值为1
    •   (a+3)<=b     结果值为0
    •   a != (b-1)     结果值为0

  • 逻辑运算符:

C语言的逻辑运算符如下:

逻辑非“!”运算符的运算律如下:

运算量

结果

1

0

0

1

 例如:

        int  k=8;

        ! ( k ==0)     结果值为1

        ! ((k-8) == 0)   结果值为0

        ! (k<= 0)     结果值为1

逻辑与“&&”运算符的运算规律如下:

左运算量

右运算量

结果

1

1

1

1

0

0

0

1

0

0

0

0

逻辑或“||”运算符的运算规律如下:

左运算量

右运算量

结果

1

1

1

1

0

1

0

1

1

0

0

0

例如:

  •     int  x=5, y=18;
  •     (x>=5) && (y<20)           结果值为1
  •     ((x+1)>=0) && (y<17)      结果值为0
  •     ((x-8)>=0) && (y==18)         结果值为0
  •     ((x-5)>0)  && (y!=18)      结果值为0
  •     ((x>=5))   ||  (y<20)        结果值为1
  •     ((x+1)>=0) ||  (y<17)         结果值为1
  •     ((x-8)>=0) ||  (y==18)        结果值为1
  •     ((x-5)>0)  ||  (y!=8)     结果值为1

  • 位运算符

C语言的位运算符如下:

例如:

  • unsigned char  x=0x17, y;
  • y = ~x  ;


  • 位逻辑与“&”运算符的运算规律如下:

例如:

  • unsigned char x=0126, y=0xac, z;
  • z = x & y ;


  • 位逻辑或“|”运算符的运算规律如下:

例如:

  • unsigned char x=076, y=0x89, z;
  • z = x | y ;


  • 位逻辑异或“^”运算符的运算规律如下:

例如:

  • unsigned char x=75, y=0173, z;
  • z = x ^ y ;

  • 位移位运算的一般形式:         

<运算量> <运算符> <表达式>

其中,

 (1)<运算量> 必须为整型结果数值;

 (2)<运算符>为左移位(<<)或 右移位(>>)运算符;

 (3)<表达式> 也必须为整型结果数值。

例如:

unsigned char a=0xe4, b;

 b=a<<3;

  • 赋值运算符与复合赋值运算符

C语言的赋值复合运算符如下:

  • 赋值运算符为“=”,其运算的一般形式如下:

<左值表达式> = <右值表达式>

  • 赋值复合运算符其运算的一般形式如下:

<变量>  <操作符>=  <表达式>

  • 相当于下列式子:

 <变量>  = <变量> <操作符> <表达式>

  x=y=15;

  • C语言特殊运算符

1.条件运算符"? :" 

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

<表达式1>  ?  <表达式2>  :  <表达式3>

  • 例如,

       int  x=82, y=101;

       x >= y  ? x+18 : y-100   //运算结果为1

       x < (y-11) ? x-22 : y-1     //运算结果为60

  • 一个利用条件运算符代替if~else语句的例子。
    • int main(int argc,char **argv)
    • {
    •           int x,  y=25;
    •           x=70;                   // 给x赋值为70
    •           y=  x++ > 70 ? 100 : 0 ;    // 给y赋值为0
    •           printf(“x=%d y=%d”, x, y);
    •           return 0;
    •  }
  •    运行结果:
  •     x=71  y=0↙

2.sizeof运算符

  • sizeof运算符运算的一般形式如下:
  •              sizeof(<类型或变量名>) 
  • 注意:它只针对数据类型,而不针对变量!  
  • 例如:
  •    sizeof(double)
  •     //计算结果为8 ,表明double类型占据8个字节
  •      sizeof(long)  
  •     // 计算结果为4 ,表明long类型占据4个字节
  •      sizeof(char)      
  •    //计算结果为1 ,表明char类型占据1个字节
  •      sizeof(float)     
  •    //计算结果为4 ,表明float类型占据4个字节

案例:

  • #include <stdio.h>
  • int main(int argc, char **argv)
  • {
  •     int n = 0;
  •     size_t intsize;
  •   
  •     intsize = sizeof (int);
  •     printf("n = %d, n has %d bytes; all ints have %d bytes.\n",
  •          n, sizeof (n), intsize );
  •          
  •     return 0;
  • }

  • C语言运算符优先级

        C语言运算符的优先级和结合规律如下 ?:条件表达式右到左

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

热爱永不消散

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

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

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

打赏作者

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

抵扣说明:

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

余额充值