zoukankan      html  css  js  c++  java
  • 操作数、运算符、表达式

    语言里面各种各样的名词.

    与其说我们学习编程语言的语法.
    倒不如说,我们是学习怎么样快速的写汇编代码.

    不要被什么各种名词吓到,觉的高深莫测.
    你在C语言或者其他编程语言中写的程序,最终都会被转换成汇编语言.

    这节课我们来学习一下表达式和运算符.
    其实,这两个东西我们都已经用过了.

    什么是运算符?就是运算的符号嘛.
    加减乘数等各种符号就是运算符.

    #include<stdio.h>
    #include<stdlib.h>
    void main() {
    1 + 3;
    int l_x = 10;
    l_x / 2;

    system("pause");
    }

    这里面有两个数字以及一个加号,这就是表达式. 很简单对吧.
    1+3里面的1和3属于操作数.
    l_x / 2 里面的l_x变量和数字2就是操作数


    它们合起来就是表达式.
    表达式就是操作数和运算符的组合.
    一个表达式可以写的很长,也可以写的很短,取决于到底要表达什么.


    表达式跟我们数学公式一样,有运算优先级.
    先乘除后加减.
    先计算括号内的,再计算括号外的.
    这都是世界上大部分国家认可的通用标准,否则就乱套了.
    你学的数学知识可就出不了国了.
    int l_v1 = 1 + 2 * 3;
    int l_v1 = (1 + 2) * 3;

    人类社会同样也有优先级啊,比如去银行排队,人家是金卡,直接进贵宾室办理业务.
    所以,很多编程语言的概念,都可以找到类似的现实例子进行比喻.


    int l_v1 = 1 + 2 + 3 - 4; //优先级相等的情况下,从左有右依次计算.
    括号可以改变优先级.

    int l_v1 = 1 + *2; 运算符不可以相邻.
    int l_v1 = 1 + -2; 这种情况编译器会理解成其他意思.

    在数学上,有时候,我们会省略乘号,但是在编程语言中,不可以省略号.
    在数学上有大括号,中括号,小括号来实现优先级的先后顺序.
    但是在编程语言中,一律小括号.

    int l_v1 = (30 / (4 - 2)) * (100 / 10);

    编译器很强大,当我们写好上面这条表达式的时候,当转换机器语言的时候,编译器会自动替我们完成.

    类型 说明
    算数运算符 +-*/ % ++ --
    关系运算符 > < == >= <= !=
    逻辑运算符

    ! && ||

    位运算符 << >> ~ | ^ &
    赋值运算符 =
    条件运算符 ? :
    逗号运算符 ,
    指针运算符 * &
    求字节数运算符 sizeof
    强制类型转换运算符 . - >
    分量运算符 .->
    下标运算符 []


    看着挺乱的,其实非常简单,里面的一部分我们已经用过了.
    而且很多编程语言都是通用的,所以我们在C语言中学过之后.

    函数、变量、结构体、指针、循环、条件、流程控制语句、运算符、表达式……
    再学习其他编程语言的时候,就不需要重复的学习这些知识点了.

    甚至可以直接上手写一些小工具软件了.
    这就是所谓的一法通万法,不变应万变.



    演示求余
    自增,自减
    ++a
    a++
    - -a
    a- -
    int l_v1 = 1, l_v2 = 2;


    int l_v1 = 2;
    int l_v2 = 0;

    l_v1 ? l_v2 = 100 : l_v2 = 200; //第一个表达式是0的时候,执行第三个表达式 //否则执行第三个表达式
    int l_v1 = 200;
    int l_v2 = 100;
    int l_v3 = l_v1 > l_v2 ? l_v1 : l_v2;

  • 相关阅读:
    ACM FPGA 2019 -- Reconfigurable Convolutional Kernels for Neural Networks on FPGAs 论文解读
    VLSI基础-- 第六章 时序逻辑电路
    ISSCC-2020:GANPU 论文解读
    fabric知识梳理图解
    在浏览器端获取文件的MD5值
    mysql实现随机获取几条数据的方法
    数据仓库之Data Vault模型总结
    大数据分析基础——维度模型
    ArrayList类源码解析——ArrayList动态数组的实现细节(基于JDK8)
    Java的四个标记接口:Serializable、Cloneable、RandomAccess和Remote接口
  • 原文地址:https://www.cnblogs.com/xiaodaxiaonao/p/7513600.html
Copyright © 2011-2022 走看看