C基本运算

运算包括:赋值运算,算数运算,关系运算,逻辑运算,三目运算

        赋值运算符=表示把右边的值赋给左边.  ==两个短等号表示左右两边的关系判断是否相等.


6.算术运算符

        包括+,-,*,/,%

 
 
  1.    int a=4;
  2.    int b=2;
  3.    printf("a+b=%d\n",a+b);
  4.    printf("a-b=%d\n",a-b);
  5.    printf("a*b=%d\n",a*b);
  6.    printf("a/b=%d\n",a/b);
  7.    printf("a%%b=%d\n",a%b);  //注意在printf函数中为了避免编译器把%当做格式控制符,要写两个%
  8.    printf("%d\n",1.1%1.2);    //错误   取余数只能是整数
  9.    int a=1.8;                //高精度向低精度转换,会丢失精度
  10.    printf("%d\n",a);      //1
  11.    double d=1;        //低精度向高精度转换,会自动提升精度.(double)1;
  12.    printf("%f\n",d);    //1.000000
  13.   //强制类型转换
  14.    int a=(int)1.8;//不会提示警告,如果不加(int)会警告 ;  低精度向高精度转换不会丢失精度,不警告
  15.    printf("%d\n",a);
  16.  
  17.    //运算优先级是.从左到右 但: * = / = % > + = -  如果要人为改变则加().
  18.    int a=(2+3)*4/5%6;
  19.    printf("%d\n",a);
  20.    
  21.    //运算时两个数据精度不一样,会自动类型转换,且是低精度向高精度转换
  22.    int a=1.2+3;   //1.2+3.0=4.2---4;
  23.    double d=1.2+3;//1.2+3.0=4.2;
  24.     printf("%.1f\n",d);
  25.  
  26.    //强制提升一个精度.另一个精度会自动提升.
  27.    double d=(double)2/3;    //2/3=0.666667--d;
  28.     printf("%f\n",d);

    %:取余数     只对整数有效果.符号前后都必须是整数

7.逻辑运算

     || :有真为真

     注意:如果前面(左边)的表达式为真.则右边不会再去判断.

     int b=2;

     int a=1<2||b--;

     printf("%d--%d\n",a,b);   //1--2

     

     && () :有假为假,左右表达式都为真才为真.

     注意:如果左边为假,则右边不会判断.

     int b=2;

     int a=1>2&&b--;

     printf("%d--%d\n",a,b);   //0--2

     

     ! :真假调换

     int b=2;

     int a=!(1<2&&b--);

     printf("%d--%d\n",a,b);   //0--1

         

    自增与自减

    自增:+1  自减:-1.

    如果符号在前.先自增或自减,再参与别的运算.++a --a;

    int a=0;

    int b=++a; b这时是1;

    如果符号在后.先参与别的运算,再自增或自减.a-- a--;

    int a=0;

    int b=a++;b这时是0;

    

8.关系运算

 
 
  1. == > < ”“ >= <=  “!=”
  2.    int a=1==2;//=表示赋值.==表示比较
  3.    int a=1>2;
  4.    int a=1<2;
  5.    int a=1>=2;
  6.    int a=1<=2;
  7.    int a=1!=2;
  8.    printf("%d\n",a);
  9.    
  10.    优先级:>,<,>=,<=,优先级相等, 但大于==和!=.同时==与!=优先级相等.
  11.    int a=1==2>3;//先计算2>3,再计算==
  12.    printf("%d\n",a);
  13.    
  14.    关系运算符结合律是从左往右,即:先看优先级,再看结合律.
  15.    int b=1!=2>3<4;//等效于:2>3为假=0. 0<4为真=1, 1!=1为假=0.所以最终结果=0;
  16.    printf("%d\n",b);

    优先级:算数运算符>关系运算符>逻辑运算符>赋值运算符

    ()>负号>!>算数>关系>&&>||


    三目运算符

    有两个结果.需要根据条件是否成立来判断到底返回哪个结果.

    前面表达式满足,给?号前面的结果,如果不满足,给:后面的结果.

    int a=1>2?2:3;

    printf("%d\n",a);   //3

        优美的代码:两个核心

        1.用尽量少的代码去实现所需要的功能.

        2.代码可读性可尽可能好.




  
  
  1.    printf("%lu\n",sizeof(int));    //4
  2.    printf("%lu\n",sizeof 2);       //4
  3.    //printf("%lu\n",sizeof int);     //如果不加括号的话,不能用于数据类型.报错
  4.    //需求是:用int字节数,乘以10的值
  5.    printf("%lu\n",sizeof(int)*10);  //40
  6.    //任何的一个字符参与运算的时候都会转换成对应的ASCII码表对应的int值.
  7.    printf("%lu\n",sizeof('a'));     //4
  8.    int d='a';
  9.    printf("%d\n",d);           //97
  10.    char c='a';
  11.    printf("%lu\n",sizeof(c));  //1
  12.    //sizeof 运算结果是一个无符号的长整型.用lu占位,但是可以跟int互相转换.
  13.    int f=sizeof 2;
  14.    printf("%d\n",f);          //4
  15.    //lu :无符号的长整型:表示正整数.有符号的长整型包括所有范围内的整数.
  16.    //且可以与int互相转换
  17.    
  18.    unsigned long e=sizeof 2;
  19.    f=e;
  20.    printf("%lu\n",sizeof e);      //8
  21.    printf("%lu\n",sizeof f);      //4





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值