語言里面各種各樣的名詞.
與其說我們學習編程語言的語法.
倒不如說,我們是學習怎么樣快速的寫匯編代碼.
不要被什么各種名詞嚇到,覺的高深莫測.
你在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;