美文网首页从汇编到C++
C语言6 运算符和表达式

C语言6 运算符和表达式

作者: Asura_Luo | 来源:发表于2018-05-04 02:46 被阅读0次

C语言6 运算符和表达式

运算符与表达式

什么是运算符?什么是表达式?

int x,y;
x+y x-y  x>y x==y x=y

表达式的结果

(x+y)*(x-y)

char => short => int => float => double
/*如果x和 y类型 不同,最终结果按照上面结果类型转换*/

表达式不论怎么复杂。最终只有一个结果

不同类型运算结果类型证明的例子:

void main()
{
    char x =1;
    short y = 2;
    int z = x + y;
    return
}

对应汇编片段:

mov byte ptr [ebp-4],1

mov word ptr [ebp-8],offset main+20h(00401030)

movsx eax,byte ptr [ebp-4]
movsx ecx,word ptr [ebp-8]
add  eax,ecx
mov dword ptr [ebp-0Ch],eax

运算符

算术运算符

+   -   *   /   %   ++  --
加  减  乘  除  取余  自加 自减

int i = 1;

++i 和 i++

/*i++和++i的区别
i++ 先运算再自加
++i 先自加再运算*/

++i;
mov eax,dword ptr [ebp-4]
add eax,1
mov dword ptr [ebp-4],eax

i++;
mov eax,dword ptr [ebp-4]
add eax,1
mov dword ptr [ebp-4],eax

这俩其实是一样的!!但是为啥有这个 前后的区别呢?
往下看~~~

printf("%d \n",i++);

mov eax,dword ptr [ebp-4]
mov dword ptr [ebp-8],eax
mov ecx,dword ptr[ebp-8]
push ecx
push offset string "%d \n" (0042201c)
mov edx,dword ptr [ebp-4]
add edx,1
mov dword ptr [ebp-4],edx
call printf(00401070)

所以i++
就是先压入 i的值之后,才会 +1
也就是先让函数使用i运算后,才会+1

反之亦然 ++i 则是先+1 再运算

关系运算符

<   <=      >   >=  ==  !=
关系运算符的值只能是0或1
关系运算符的值为真时,结果值都为1
关系运算符的值为假时,结果值都为0

逻辑运算符

!   %%  ||
x>y && x<z  只有一个结果
x>y || x<z  只有一个结果

位运算符

<<   >>   ~   |   ^    &
左移 右移  非   或  异或  与

赋值运算符:

= 拓展赋值

条件运算符

?:

相关文章

  • C语言6 运算符和表达式

    C语言6 运算符和表达式 运算符与表达式 什么是运算符?什么是表达式? 表达式的结果 表达式不论怎么复杂。最终只有...

  • 【初识C语言】C语言中的运算符

    C语言中的运算符 1运算符和表达式 C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具。C语言的运算异常...

  • C语言表达式和运算符大学霸IT达人

    C语言表达式和运算符大学霸IT达人 C语言中表达式会包含常量、标识符、运算符。最基础最简单的表达式就是常量表达式。...

  • 今天自学——C语言之赋值表达式

    赋值表达式——2017.2.4 赋值运算符和赋值表达式 “=”号在数学是等于号,但在C语言里是赋值号,叫赋值运算符...

  • 学习计算机之路(C语5 运算符和表达式)

    1.0运算符与表达式 现在为止,C语言中的各种基本数据类型的特点和形式我们都已经了解了! 运算符和表达式是用来进行...

  • C语言02- 运算符、表达式、程序语句、编码风格

    C语言02- 运算符、表达式、程序语句、编码风格 7:运算符与表达式 7.1:运算符 只有一个操作数的运算符叫单目...

  • C语言-运算符

    C语言运算符是说明特定操作的符号,它是构造C语言表达式的工具 。C语言的运算是非常丰富的,除了控制语句和输入输出...

  • Python学习笔记(一)

    Python 三目运算符 bool ? a : b 表达式 在python中没有类似java和C语言中的bool?...

  • 2018-02-05Java与C相似处

    运算符意义相同。 简写的C语言中条件运算符 条件运算符( ? :)也称为 “三元运算符”。 语法形式:布尔表达式...

  • 二、基本运算

    一、运算符 运算符是指定要在表达式中执行哪些操作(数学、索引、函数调用等等)的符号。 运算符分类:C#语言继承了C...

网友评论

    本文标题:C语言6 运算符和表达式

    本文链接:https://www.haomeiwen.com/subject/loyrrftx.html