c語言基礎內容——一些基礎內容(完節)
帶個徒弟過國二,所以就乾脆打成部落格形式吧;
自己也可以回顧,加深一下學習,為學嵌入式打好基礎;
考國二的可以看下,大神也可以指點一些,畢竟本人還是很菜的;
會直續更新的;
廢話不多說,直接進入主題;
1;計算語言的發展;
計算機語言的種類非常的多,總的來說可以分成機器語言,組合語言,高階語言三大類。然而這種相對的高階和低階,相對人的使用而言,機器語言就是01組成這更方便計算機的使用,而不方便與人,而高階語言就更適合於人的使用;
因此有這樣一句話,語言的發展都是朝著更方便人使用的方向進化的;
2;c語言的執行機制;
一個現代編譯器的主要工作流程:
原始碼 (source code) → 前處理器 (preprocessor) → 編譯器 (compiler) → 目的碼 (object code) → 連結器(Linker) → 可執行程式 (executables)
——原始碼:簡單的說就是你所編寫的程式碼
——前處理器:前處理器是在真正的編譯開始之前由編譯器呼叫的獨立程式。前處理器可以刪除註釋、包含其他檔案等功能。
——編譯器:簡單講,編譯器就是將“一種語言(通常為高階語言)”翻譯為“另一種語言(通常為低階語言)”的程式;在C語言裡面就是將C語言翻譯成機器語言。
——目的碼:一般指編譯後的程式碼,它一般由機器程式碼或接近於機器語言的程式碼組成。
——連結器:將目標檔案外加庫連結為一個可執行檔案。
一般在windows上用Devc生成的可以執行檔案是已exe作為字尾的可執行檔案
3;介紹一下編譯器吧;
vc++6.0;國二是是這個
連結:http://jingyan.baidu.com/article/7908e85c93633aaf481ad2c6.html
到最後編寫完程式碼之後;進行編譯連結執行的步驟;
我們現在暫時常用的是devc吧?
4;打程式碼的時候需要注意;
注:打程式碼的時候記得要把輸入法切換到預設輸入法,純英文輸入法。不然書寫程式碼的時候很容易出現錯誤,中文的標點符號和英文的標點符號是不一樣的。
注:每一行程式碼結束需要分號結束;
5;介紹一個簡單的入門程式碼;學會了那也就可以說自己會敲程式碼了吧。嘻嘻;開玩笑,只能說明你入坑了,程式設計師這個大坑;
介紹;
標頭檔案;
什麼叫做標頭檔案:比較官方的話語是這麼說的“標頭檔案作為一種包含功能函式、資料介面宣告的載體檔案,主要用於儲存程式的宣告,而定義檔案用於儲存程式的實現 ”;
//可以理解為“把標頭檔案當作一個工具箱,裡面有很多工具,如果我們用到了這個工具,那麼就需要把這個工具箱拿過來”。
例如上面那個程式碼裡面的#include<stdio.h>;
為什麼要宣告這個標頭檔案,就是因為下面使用了printf和scanf函式,這個函式(工具)在這個標頭檔案裡面(工具箱裡面),因此要用到函式工具則要宣告這個標頭檔案;
main函式;
任何c語言程式只能有一個main函式,main函式是整個程式的入口,稱之為主函式,
程式從main函式開始執行,到main函式最後就結束程式;
定義一個變數;
變數的定義語法如下:
資料型別 變數名 = 值;//或者先不賦值;
int d;定義一個int型別變數d
printf();輸出函式;
輸出括號你們引號裡面的全部容;
注意如果存在%d類似的,這些叫做佔位符,先佔一個位置,然後把後面的資料列表的值放進來;
printf("c語言歡迎你%d\n",d);//%d就是佔位符;,後面的就是資料列表,依次放到佔位符的位置,即可;
scanf();輸入函式;
一樣由兩部分構成;
要在鍵盤上輸入引號裡面的全部內容;
如果是佔位符就要輸入一個這佔位符表示型別的值;
後面就是要接一個地址;將前面輸入的值放到這個地址裡面去,相當於賦值了;
&這個符號就是取地址符;取d的位置,將%d接收的值放到這個位置裡面,達到將這個值賦值給d;
6;基本資料型別;
前面那個int型別就是基本資料型別,%d就是表示int這個基本資料型別的佔位符;
注意國二其位元組大小;是以這個表為主
其佔位符;記得幾個常用資料型別的佔位符;也叫格式化字元
int——%d;
long——%ld;
char——%c;
float——%f;
double——%lf;
8進位制整數——%o;
16進位制整數——%x;
來個程式測試一下吧;注意位元組大小與計算機的位數有關係,但是國二里面位元組是一定的以上圖為準;是16位;
注意sizeof()
sizeof操作運算子;計算這種變數,資料型別的大小的;
可以直接接資料型別名字;可以接變數;
並且在接變數的時候可以將括號省略,因為它是操作符;
7;標誌符;
系統自定義識別符號;
——關鍵字;也就保留字
——預定義標誌符;
一些標準函式;例如sqrt,printf等
編譯預處理命令;例如;define ,include等
使用者定義識別符號也就是取名字;
規則;
1,要以字母或下劃線開頭,有字母下劃線,數字組成;
2,不能採用關鍵詞命名;
3;預定義的識別符號,只是不建議使用,但可以用;
4;區分大小寫的;
5;有長度規定的;許多系統都是擷取8個;
“常作為國二選擇題;選出合法的使用者標誌符;”
8;常量和變數;
8.1;整數;
在c語言中可以使用十進位制,八進位制。16進位制等幾種形式;
8進位制,以數字0開始;011相當於10進位制的73;
16進位制,以0x或者0X開頭並且還有a到f或者大寫字母;0X16等於十進位制32;
其進位制轉化可以看我另外的部落格;那裡詳細介紹了;
注意;在c語言中要表示長整形數需要在整形數後加l或者大寫L;043L;
8.2;實數,也就是我們所說的小數,他只能由10進製表示不能用其他進位制轉化了;
實數一般用小數形式或者指數形式表示;(國二常考)
小數;由數字0到9和小數點組成(注意必須要有小數;)
0.3 .23 23. 都是合法的的實數;
指數形式;由整數部分,小數點和小數部分,和指數部分,並且指數部分是在E和e後跟整數介碼;
0.0314就是3.14E-2;
注意;
字母E或e後面必須要接有數字,並且一定是整數;
整數部分和小數部分可以省略但是不能同時省略。
小數點或eE以及整數介碼可以省略,但是不能同時省略;
例如;
123E4;135.6e-7;.123e8;0e0;都是合法的;
e5;3.2e0.5;5e;.e3都是不合法的;
5e;小數點和整數介碼同時省略;
.e3;整數和小數部分同時省略了;
8.3;字元常量;兩種表達方法
1;直接用單引號括起來,’a’;
一個字元常量的值都是由ASC|| 程式碼確定了的;
2;以一個反斜槓“\”開頭的字元序列,成為轉義字元;
‘\101’表示ASC||為十進位制65的字元‘A’;
來個有趣的;還記得也做過這個選擇題;
大小寫字母轉換的程式;
3;字串常量;(這個比較容易忘記,字串也可以有常量)
字串常量由一對雙引號括起來的字元序列;
“abc”,“123”都是合法的;
補充;
字串長度就是字元的個數;
字串的大小就是字元的個數加上最後一個結束符‘\0’;
符號常量;define修飾;
當一個字元常量被多次使用時,為提高他的靈活性,我們就用一個符號來表示他;這個符號就叫做符號常量;
定義格式;#define 識別符號 常量;(注意這個要在main函式之前定義,屬於預編譯;
其實還有一個修飾變數不可變的關鍵詞,const;
詳情可以看#define與const
http://blog.csdn.net/zw1996/article/details/52833761
8.4;變數;
介紹;一個變數就要有其名字,系統可以通過變數名來訪問變數,並且變數在程式中使用前必須定義,也就是指定變數名稱和資料型別,以便編譯系統為它分配相應的儲存單元;ps;要進行初始化;等下證明他不會進行預設初始化的;
變數的定義;
資料型別符 變數名列表;多個變數用逗號隔開;
int a, b;//定義兩個int變數a,b;
進行變數賦值;
變數名 = 表示式;
a = 10;//就是將10賦值給a;
//注意這裡是=而不是==,注意區分,在C語言中==是判斷是否等於,=代表賦值;
當定義一個變數但是又沒有給他賦值的時候,系統會分配一個不確定的值給他,那麼其就沒什麼意義了;
等下程式碼證明;
如果變數型別和所賦值型別不一致的時候,所賦資料將被轉換成與變數相同的型別;
int x = 10.111;直接就是x=10;
8.5;資料型別的自動轉換和強制轉換;
可以看我之前的部落格;
連結;http://blog.csdn.net/zw1996/article/details/52806181;
9;基本運算子與表示式;
9.1;算術運算子和算術表示式;
加減乘除取摸;
自增自少;
c語言中有兩個特殊的算術運算子:自增運算子++,自減運算子- -。它們都是單目運算子,而已運算物件必須是變數;
自增,自減,的結合方向是自右至左,他們是使運算物件的值加1減1;
算術表示式;
表示式,x*y%c-0.9+‘A’;這些;
注意;進行算術運算的時候,應該注意;(國二選擇題)
1;注意算術符的優先順序;
2;優先順序相同是,應該按照運算子的結合方向出來;
可以看下之前我部落格的前面關於優先順序的部分;
連結;http://blog.csdn.net/zw1996/article/details/51253336;
9.2;賦值運算子和賦值表示式;
賦值表示式;
是由賦值運算子“=”將一個變數和表示式連線起來的式子;
格式;變數 = 表示式;
注意;(常做考題)
賦值運算子的左邊必須是變數;
當賦值表示式中左邊變數與右邊表示式的資料型別不同時,則需要進行型別轉化;
規則為;
右邊的表達的值轉化為左邊變數的資料型別,然後再賦值給變數;
9.3;關係運算子和關係表示式;
注意,關係表示式的運算結果只有兩種;真或假;非0為真,0為假;
特別注意運算子的優先順序;
低於算術運算子但是高於賦值運算子;結合性都是自左向右;
9.4;邏輯運算子和邏輯表示式;
注意其短路原則;(常考)
1;a&&b&&c;
如果a為假則不再執行任何操作,直接返回0;意思就是b,c不進行操作;這就是短路;因為a為0,那麼這個式子一定為0了,結果已經確定了bc是否執行沒有什麼關係了;
如果a為1;則要執行b,如果b等於0,那麼c就不需要執行了;一樣的道理,
2;a||b||c;如果a為真那麼不再執行任何操作,直接返回1;意思就是b,c不進行操作;這就是短路;因為a為1,那麼這個式子一定為1了,結果已經確定了bc是否執行沒有什麼關係了;
如果a為0;則要執行b,如果b等於1,那麼c就不需要執行了;一樣的道理,
3;a&&b||c;或者a||b&&c;因為邏輯與的優先順序大於邏輯或,因此可以將其看做2型別;
總結;
對於&&,只有左邊運算物件不為0,才繼續進行右邊的運算;
對於||,只有左邊的運算物件為0,才繼續進行左邊的運算;
注意;邏輯與&&的優先順序高於邏輯或;結合性為從左到右;
a&&b||c就是 (a&&b)||a; 從||兩邊加括號;(技巧)
9.5;條件運算子;
a?b:c;唯一的運算子;
等效於;
if(a){
b;
}
else{
c;
}
9.6;逗號運算子;
在c語言中,逗號“,”是一種特殊的運算子,用於將若干個表示式連線起來;
格式;
表示式1,表示式2,表示式3;
其運算規則;
先計算表示式1,再計算表示式2,最後計算表示3;最後一個表示式的值就是逗號運算子的值;
9.7;基本位運算,
之前寫過部落格,
連結為;http://blog.csdn.net/zw1996/article/details/52621984;
10;輸入輸出基本函式介紹;
10.1;介紹單個字元的輸入輸出;
c = getchar();單個字元的輸入;接收一個字元並賦值為c;
putchar(c);單個字元的輸出;輸出字元變數c
注意使用getchar();接收的時候,鍵盤敲入的;空格,換行,等都會作為字元被其接收;以後這點要特別注意;
10.2;格式輸入輸出;
scanf,printf可以對任意型別的多個資料按照指定格式進行輸入輸出操作;
這節單獨拿出來吧;覺得是個比較容易忘的;並且有點麻煩的;下次補上鍊接;
累死;這篇部落格打得也是夠久的了;終於碼完了,但是感覺好多不足的;下次有新知識在補上;感覺還是不怎麼熟悉,並且這知識點順序沒怎麼邏輯一下,基本上是按照自己的書來一樣,只是自己碼上了圖而已;越這樣就越佩服出書的人了,我的個天啊,以後無論看什麼書,都應該抱著尊敬的態度去學習,每本書都包含了作者無數的心血;
我感覺我自己打部落格一樣,感覺自己真的很很花心思的。
有時候在想,如果自己打的部落格丟失了,真不敢相信,我會是怎樣的心情,千萬不要這樣啊;;越想越嚇人;
休息一回,等哈還要打一篇java部落格;;;;
感覺發表部落格的那刻是最開心的,從心裡的高興;
看到瀏覽量變多,也十分高興,這是自己的付出勞動滿足了自己一點點虛榮心;
期待自己的水平越變越高,畢竟對自己未來的期望很高哈;
軟硬體都要會,我也是醉了;沒辦法,那麼大學只能少浪一點點哈,,,
相關文章
- python基礎內容Python
- mapper.xml基礎內容APPXML
- vue - vue基礎/vue核心內容Vue
- Python基礎學習內容概述Python
- 程序和執行緒基礎內容執行緒
- vue - vue基礎/vue核心內容(2)Vue
- C語言基礎C語言
- c語言基礎的一些小技巧C語言
- 基礎運維常見工作內容有哪些?運維
- vue - vue基礎/vue核心內容(終結篇)Vue
- c語言的基礎C語言
- 【01】C語言基礎C語言
- 新手入門前端,需要學習的基礎內容。前端
- C# XML基礎入門(XML檔案內容增刪改查清)C#XML
- C語言基礎-C簡介C語言
- Linux基礎命令---echo列印內容到標準輸出Linux
- 新手Mac需要了解哪些內容?Mac小白基礎教程Mac
- python資料分析基礎day1-初窺內容Python
- 零基礎怎樣學Java? 要學哪些內容?Java
- Linux運維的工作內容有什麼?Linux基礎Linux運維
- c語言基礎知識C語言
- C語言入門基礎C語言
- c語言基礎學習C語言
- C語言基礎函式C語言函式
- C語言基礎-指標C語言指標
- 基礎架構設計時,需考慮到哪些內容?架構
- C語言基礎-1、陣列C語言陣列
- C語言基礎-1、指標C語言指標
- c語言基礎知識3C語言
- (C語言)使用指標列印陣列的內容C語言指標陣列
- SharePoint Server 2016 在原有功能的基礎上增加的內容Server
- Xamarin.FormsShell基礎教程(5)Shell專案內容新建頁面ORM
- Vue原始碼閱讀前必須知道javascript的基礎內容Vue原始碼JavaScript
- 學網路安全需要什麼基礎?學習內容有哪些?
- 鴻翼ECM新平臺6大亮點之基礎設施定位、內容應用合力、內容生產力
- C語言基礎-2、字元型別C語言字元型別
- dart語言基礎Dart
- Xamarin.FormsShell基礎教程(6)Shell專案內容詳情頁面ORM
- Linux課程適合0基礎學嗎?要學習哪些內容?Linux