南飓风 发表于 2024-8-16 13:29:48

运算符,选择语句

一,运算符    自变运算符: ++/--   使变量的值主动加1大概减1        前自变:++num/--num 立即生效        后自变:num++/num-- 下一行语句才有用        留意:不要在一行代码中多次使用自变运算符    *  ++ -i  这样对吗?  这样不对  在这里-i是表达式,自增自减只能针对一个变量举行运算!       -i++  这样可以,此时是先  i++   再取负值哦!          算术运算符: + - * / %        整数/整数   效果还是整数,没有小数点,只保存整数部分            10/3   -> 3            10%3   -> 1           / % 除数不能为0,否则就会浮点数例外、(核心已转储),这是个运行报错,一旦产生程序立即克制,背面不再执行  注:  2%5  -2%5  2%-5  -2%-5  他们输出效果各是什么呢?  应该是      2    -2   2    -2    %它的效果以被取余的为基准即2,-2,2,-2  还有:  printf("%lf", 5.0%2);  这是什么?    这样会报错    5.0%2中  %要求是整型且输出符号由被取余来决定  什么意思?    就是  printf("%ld", (long)5.0%2);  这样是对的而  printf("%d", (long)5.0%2);  这样能输出但是会警告; 若a % b == 0,阐明a是b的整数倍     关系运算符: >  =  a++ 为0,b++被短路了,但是c++没有被短路哦,这里要留意      故输出为1,0,1     条件/三目运算符:运算对象有三个部分        A ? B : C           判断A的值假如为真则执行B,否则执行C     赋值运算符        a = 10;         a += 10;        a=a+10;        a -= 10;        a *= 10;        a /= 10;        a %= 10;    位运算符:  &   |   ~   ^  逗号运算符:  *优先级最低  eg:int num = 0, num1=0;    num1 = (num=1,2,3);---->    括号中num被赋值为1,逗号优先级最低故num1=3    num=?  num1=?    这时num应该等于1,num1等于3 二、分支语句    if(表达式);  //单分支    {        //表达式为真(非零),则执行此处代码    }     if(表达式)  //双分支    {        //表达式为真(非零),则执行此处代码    }    else    {        //表达式为假(零),则执行此处代码    }     if(表达式1)  //多分支    {        //表达式1为真(非零),则执行此处代码    }    else if(表达式2)    {        //表达式2为真,则执行此处代码    }    else if(表达式3)    {        //表达式3为真,则执行此处代码    }    else    {        //假如以上所有表达式都为假,则末了执行此处代码    }三,类型转换
    只有相同类型的数据才气运算,假如类型不相同的数据需要先转换相同类型后再举行计算。
    主动类型转换:
        转换规则:
            以不丢失数据为基础,可以适当地牺牲一些空间
            1、字节少的向字节多的转
            2、有符号的向无符号的转
            3、整型向浮点型转
            留意:char short假如与不同类型的数据运算时,会先提升为int类型后参与运算
    强制类型转换:
        (新类型名)数据;
        这种方式有大概会丢失数据,慎重使用
四,switch开关分支语句
    switch(n) //n可以是数值、表达式,运算效果必须是整数
    {
        case val:   //假如val==n,则打开执行开关
                    //val必须是整型常量
            ...
            break;  //关闭执行开关,结束switch
            //假如每个case后都加break,形成了分支结构
            //switch中不能使用continue配合
            //case a ... b:  可以表现,但是只有GNU编译器才支持该语法,不建议使用
        case val1:
            ...
        default:
            //假如所有的case都没有打开,则末了打开default,而且放在任何位置都可以末了打开
    }
这里有个有趣的征象:
在linux ubuntu16.04
case 要求是常量
const int a=1;
switch(1){
case a:....  }编译会错误的哦
但是在windows vscode-mingw  同样的方式不会报错哦,甚至会执行case a:这个语句内的内容哦
可以去试一试。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 运算符,选择语句