C語言快速入門:表達式與語句

表達式

表達式是由運算符和操作數(shù)組合構造成。最簡單的表達式是一個單獨的操作數(shù),以此作為基礎,結合語言自身支持的操作符,就可以建立復雜的表達式。下面是一些表達式:

4
-5
3.14+9
a * ( b + 7 ) / 30
b < 5

從這里可以看到,操作數(shù)可以是數(shù)據(jù)常量(4,-5)、變量(a,b)或者是二者的組合(b+7)。每一個表達式都有一個值,求值的過程依賴于運算符優(yōu)先順序。加減乘除這四種運算遵循算術運算的優(yōu)先級法則。當表達式中混合有不同類型的操作數(shù)時,會執(zhí)行自動類型轉換操作。如果不能轉換到同一類型求值,程序便會報錯。
語句

C語言中,語句是構造程序的基本成分,每條語句以一個分號標識其結束。
width = 20
這只是一個表達式,而
width = 20;
是一條語句,在任何表達式后面加上分號,表達式將成為語句。因此,最簡單的語句就是一個單獨的分號,但是它什么不做。

整型除法(/)與求余(%)運算

兩個int類型的數(shù)據(jù)做除法時,結果是其商。當出現(xiàn)不能被整除的情況時,并不會得到小數(shù)部分。因此1/2會得到0而非0.5,3/2會得到1。當需要保留小數(shù)部分時,就需要兩個float類型的數(shù)值進行運算。
求余(%)運算作用于兩個整型(int)數(shù)據(jù)間,值是兩個數(shù)相除的余數(shù),如2%3=3,5%3=2,6%3=0
除號的正負取舍和一般的算數(shù)一樣,符號相同為正,相異為負;求余符號的正負取舍和被除數(shù)符號相同。

#include <stdio.h>

int main()
{
    printf( "-3 / 16 = %d\n", -3/16 );
    printf( "16 / -3 = %d\n", 16/-3 );

    printf( "-3 %% 16 = %d\n", -3%16 );
    printf( "16 %% -3 = %d\n", 16%-3 );

    return 0;
}
glimix.com

注意
源程序中演示求余(%)運算的兩行代碼,你會發(fā)現(xiàn)在printf()的格式化參數(shù)中,使用了連續(xù)兩個%號,最后程序僅輸出了一個%號。這是因為%號自身是格式控制符的一部分,因此需要連續(xù)輸入兩個%號以表示轉義輸出自身。

將表達式的結果賦值給變量

很多時候,我們不會像上面的程序一樣,簡單的將表達式結果輸出到屏幕,而是需要將表達的運算結果賦給一個變量或傳遞給一個函數(shù),以使用這個變量進行更多的處理。前面我們學習了將一個數(shù)值量賦值給一個變量以達到改變變量的目的,如 width = 8;下面我們擴展一下賦值操作的右端實現(xiàn)——使用表達式進行初始化。

int width = 16 / 3;
int height = a + 20 * (4 / 3) - 3;
printf( "area = %d\n", width * height );

上面的代碼定義了width,height兩個變量,在使用一個表達式初始化變量width之后,我們在第二條語句中使用了變量width,讓其參與變量height的初始化操作。最后在函數(shù)printf()中使用表達式width * height計算出矩形的面積,以表示這兩者參與了后續(xù)的運算。

后續(xù)的補充

關于求余運算,需要記住的是:求余符號的正負取舍和被除數(shù)符號相同。不過,在實際的開發(fā)中,應用兩個正整數(shù)做求余運算是最多的需求。

除法方面,在看到除法運算(/)時,始終要提醒自己小學時背誦的一句話:0不能為除數(shù)!在程序當中也是如此。你可以基于本節(jié)掌握的內(nèi)容,寫一個除0的程序來,看看最終會發(fā)生什么。完成之后,你也許會想:我不會這么笨的~~~,但是你可能會不經(jīng)意這么做。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容