語句,表達式和運算符。lua
C中語句
指的是一個讓計算機執行某任務的完整指令,通常來講一行爲一個語句,以分號結尾。栗子:code
x = 2 + 3; //計算機執行2+3並存到x中,一個簡單的語句
如下各寫法,操做是同樣的:字符串
x=2+3; //變量和操做數之間沒有空格 x = 2 + 3; //變量和操做數之間有空格 x = 2 + 3; //變量和操做數不在一行
C不關心語句中的空格,編譯器只識別字符,會自動忽略空格。處於可讀性的考慮,建議使用第二種寫做方式。編譯器並不會忽略常量中的空格,好比:編譯器
"HELLO WORLD, NICE TO MEET YOU!" //單詞之間的空格不會被忽略掉
特殊狀況也存在多行爲一個語句,而且有不以分號結尾的語句。例子:數學
// 不以分號結尾 #include<stdio.h> #define PI 3.14 // 一個語句折行,雖然很差看,可是合法 printf( "hello world!" ); // 在字符串中直接折行是不合法的 printf(「Hello, world!」); // 若是須要折行,在折行處添加\ printf(「Hello,\ world!」);
空語句(Null Statements)
就是什麼也不作的語句,直接放置一個分號;
,表示當前行的代碼不作任何操做。複合語句(Compound Statements)
是多個語句在一塊兒組成的一個語句塊,差很少全部的程序中都包含了複合語句,例子:it
{ x = 2; y = x + 1; }
表達式
是計算數值的任何東西(按原文直譯),感受就是數據自己,和存儲數據的變量,常量都是表達式,同時也包含數據計算的操做。簡單表達式(Simple Expressions)
是單一組成,好比變量,常量等。io
PI // 常量π 0 // 數字 name // 變量
複雜表達式(Complex Expressions)
與單一相對,由多個單一組成。編譯
x + y z = x + 10;
運算符
是命令計算機對操做數執行對應操做的符號。變量
賦值運算符
就是等號(=),把一個值給一個變量。程序
x = y
數學運算符
顧名思義,進行數學運算的符號。C中數學運算包括兩個一元運算符(Unary Mathematical Operators)
和5個二元運算符(Binary Mathematical Operators)
。一元運算符
表示操做數只有一個的運算符,既++和--,也就是你們熟知的自增和自減運算。
int x = 10, y = 9; x ++; // 11 y --; // 8
二元運算符
操做數有兩個,包括加(+)減(-)乘(*)除(/)和求餘(%)。
int x = 10, y = 5, z; z = x + y; // 15 z = x - y; // 5 z = x * y; // 50 z = x / y; // 2 z = x % y; // 0
這裏的優先級基本遵循了數學運算的優先級,括號最好,其次是乘除,最後是加減。
x = 4 + 5 * 3; //19
比較特殊的是++,--和%,++,--的優先級高於乘除,求餘和乘除相同。
z = 12 % 5 * 2; // 4, 因爲是同級,從左到右計算,先求餘,而後相乘 int x = 5, y; y = 2 * ++x; //12, ++優先計算
若是是嵌套括號,則內部的優先級高於外部,由內到外依次計算。
x = 25 - (2 * (5 + (4 / 2))); // 11
關係運算符
就是咱們經常使用的比較大小,是否相等的運算符,常見於if語句中。包括等於(==),大於(>),小於(<),大於等於(>=),小於等於(<=)和不等於(!=)。
if (age>=18) { printf("%s", "成年人!"); }
if語句
用來控制程序的運行。可單一使用if
結構,也可與else
或者else if
一塊兒使用。整個if語句結構執行完畢以後,繼續執行if結構以後的代碼。
// if的執行部分不用大括號包裹,爲了可讀性,不建議這樣寫 if (x > y) y = x; // 推薦 if (x > y) { y = x; } // else if int x = 10; if (x > 10) { printf("x大於10"); } else if(x > 5) { printf("x大於5"); } else { printf("x小於5"); } printf("if語句執行完畢");
有if的地方就有true和false,true和false對應到數字就是1和0。
a = (5 == 5); // a等於1 a = (5 != 5); // a等於0
另外,不等於0的數字都認爲是true,包括負數。有些人認爲0是分界線,大於0纔是true,這是不正確的。-1作爲if的條件,是按true進行處理的。
在if條件中,通常不僅有關係運算,還包含數學運算,數學運算的優先級高於關係運算。
if (x + 2 > y) //先算x + 2
等於和不等於的優先級低於大於小於的比較。
x == y > z //先計算y > z
邏輯運算符
有三個,與(&&)或(||)非(!)。
x > 2 && y < 5 //兩個條件同時成立時是true x > 2 || y < 5 //兩個條件有一個成立時是true !(x > 2) // 條件不成立時是true
邏輯運算符的優先級比較低,以前提到的優先級都高於邏輯運算符,! > && > ||。
符合賦值運算符
是當某個變量自身進行數學運算時的一種簡化寫法。如:
x = x + 5; x += 5;
條件運算符
是簡單if的一種簡化,經常使用於二選一的時候。例子:
int x = 5; int y = x > 0 ? 1 : 0;
當x大於5的時候y等於1,不然y等於0。
內容不復雜,但做者的講解很詳細,篇幅很大!