语言里面各种各样的名词.
与其说我们学习编程语言的语法.
倒不如说,我们是学习怎么样快速的写汇编代码.
不要被什么各种名词吓到,觉的高深莫测.
你在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;