初學(xué)C語言基本運算和表達式
導(dǎo)讀:程序要完成高級功能,首先要能夠做到基本的加減乘除。本章從程序中變量的概念開始,結(jié)合之前學(xué)的輸出函數(shù)和新介紹的輸入函數(shù)制作簡單人機交互程序,然后講解最基礎(chǔ)的加減法運算,自制簡單計算器程序練手。
5.1 變量
5.1.1 變量聲明定義與賦值表達式
上一章講了數(shù)據(jù)類型,數(shù)據(jù)類型要和變量結(jié)合在一起才能夠在C語言程序中體現(xiàn)出它們的作用,一般的變量是這樣定義的:
數(shù)據(jù)類型 變量名;
變量名可以是26個字母中的任意一個,也可以是非C語言關(guān)鍵詞的單詞或自定義字母組合,也可以加下劃線等等,我們就先用簡單字母來命名吧,比如聲明一個整型的變量a,如下:
int a;
也可以定義多個變量,變量名之間用逗號隔開,最后加分號表示結(jié)束,如下:
int a,b,c,d;
也可以在定義變量的時候,直接賦值,這就要用上賦值表達式,如下:
int a = 3;
賦值的意思就是賦予數(shù)值,也可以多個一起,如下:
int a = 3, b = 4, c = 5;
當然也可以定義完變量后,再給變量賦值,如下:
int a;a = 3;
請注意,C語言中,規(guī)定變量定義必須是代碼的最開始部分,比如以下在C語言不建議這么做,雖然剛才的方式用Dev-C++不會報錯,但是不代表別的編譯器不會報錯,如下:
#include <stdio.h> void main(){ printf("hello world"); int a = 10; }
因為C語言的編譯規(guī)則有多種,所以建議變量聲明定義放在代碼開始部分,以下比較規(guī)范,
注意:C語言編譯標準隨著時代的變遷做幾次改變,如最開始的C89然后有C99以及最新的C11,后續(xù)文章講解到編譯規(guī)則的時候再剖析這部分。
#include <stdio.h> void main(){ int a = 10; printf("hello world"); }
5.1.2 初識格式化輸出
如何查看變量的值,可以用debug的辦法(后續(xù)再講解用Dev-C++上斷點調(diào)試辦法),也可以通過printf這個C庫函數(shù)查看,代碼如下,運行結(jié)果如圖5.1,
#include <stdio.h> void main(){ int a = 10; printf("a = %d", a); }
圖5.1 printf輸出情況
可以看出輸出為“a = 10”,在printf語句中,printf(“a = %d”, a);,其中“a = ”是要輸出的字符串,就像之前輸出“hello world”一樣,寫什么就輸出什么,%d表示這段字符串后面輸出的變量值,按照十進制整型輸出,下面來點復(fù)雜的,然后再解釋啥是格式控制符,代碼如下,運行結(jié)果如圖5.2,
#include <stdio.h> void main(){ int a = 10; int b = ‘c‘; printf("a = %d, a = %x, b = %d, b = %c", a, a, b, b); }
圖5.2 稍微復(fù)雜的printf輸出
按照一個蘿卜一個坑的原則,第一個“%d”對應(yīng)一個輸出“a”,第二個“%x”對應(yīng)下一個輸出選“a”,第三個“%d”對應(yīng)“b”,最后一個“%c”對應(yīng)“b”。請記住,一定要一一對應(yīng),否則會有意想不到的錯誤哦。
C語言有規(guī)定格式控制符,在輸出函數(shù)printf(“”)的冒號“”里面,如果有百分號%號出現(xiàn),下一個字母會有它獨特的意義:
比如d,表示按照十進制格式輸出,
比如x,表示按照十六進制格式輸出,
比如c,表示按照單個字符格式輸出。。。。。。當然還有很多,現(xiàn)在先介紹這些。
注意:字符一般會涉及ASCII碼表,這部分知識怕初學(xué)者負擔(dān)太重,放后面再介紹。
5.1.3 再來一個C庫函數(shù)scanf以及格式化輸入
屏幕顯示的程序中的數(shù)據(jù),叫做輸出,敲鍵盤傳入程序中的數(shù)據(jù),叫做輸入。輸出函數(shù)一般用printf,輸入函數(shù)一般用scanf。下面來寫一段程序,程序大體思路是,先定義一個變量a,然后用輸入函數(shù)scanf給a賦值(通過鍵盤敲的數(shù)值),最后通過輸出函數(shù)printf在屏幕顯示a的數(shù)值,代碼如下:
#include <stdio.h> void main(){ int a; scanf("%d", &a); printf("a = %d", a); }
注意:scanf語句中,a前面有個字符是&,讀者可以看看鍵盤上那一排數(shù)字鍵,對了就在數(shù)字7這里,鍵盤要輸入&,可以通過按住鍵盤Shift鍵+數(shù)字鍵7,如圖5.4,
圖5.3 鍵盤
寫好代碼后,編譯運行,發(fā)現(xiàn)控制臺一片黑,如圖5.3,
圖5.4 控制臺一片黑
可以看到有個光標在閃爍,請用鍵盤輸入123試試看,然后再按下回車按鍵,結(jié)果如圖5.4,
圖5.5 運行結(jié)果
從結(jié)果上可以看出,輸出的“a = ”加上剛才鍵盤輸入的123一起在屏幕上顯示出來,這就是最基本的輸入輸出函數(shù)的使用了。下面講解這段程序:
scanf中,變量前面有個符號“&”想必讓人產(chǎn)生了困擾,“&”符號叫做取地址符號,之前講過內(nèi)存存放數(shù)據(jù)的,每個數(shù)據(jù)都有它的地址,希望后續(xù)講解指針的時候讀者會有更清晰的了解。希望讀者不用困擾,為什么不直接這么寫:scanf(“%d”, a),而要這么寫:scanf(“%d”, &a),差別在于是否有“&”,請先這么用著吧!
為了更加人性化,在scanf前添加一段printf提示即將輸入的字符格式,再添加char型格式輸入,下面一段代碼會比之前稍微復(fù)雜那么一點點,
#include <stdio.h> void main(){ int b; char f; printf("please input int and char data with , to separate : "); scanf("%d, %c", &b, &f); printf("b = %d, f = %c", b, f); }
編譯運行后,在提示語出現(xiàn)后,在冒號:后面輸入400,k,運行結(jié)果如圖5.5,
注意:在代碼的scanf中,有用逗號,來隔開b和f的取值,所以在屏幕輸入的時候,也要用逗號隔開整型和字符型,最后回車鍵顯示結(jié)果。
圖5.6 運行結(jié)果
這樣整型類型的b就被賦值400,字符f就被賦值‘k'了。當然讀者可以賦值不同的數(shù)值大小,請記住這些類型的取值是有上下限制的,如果超過可能會有意想不到的后果,可以在第四章查看表4.1找到基本數(shù)據(jù)類型的取值限制,至于字符可以輸入26個字母中的一個,或者一些標點符號等等。
以上知識點大家有沒有學(xué)會呢,感謝對我們的支持。
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對數(shù)怎么表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機閱讀
- 01-10C#中split用法實例總結(jié)
- 04-02jquery與jsp,用jquery
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文