1、經典入門:hello world 註:上面所使用的關鍵字:include 頭文件包含 int 整型,用來表示整數的類型 void 空類型 return 函數返回 2、基本概念: 源文件:源文件即源程式代碼文件,C語言源文件尾碼名是.c; 頭文件:頭文件的尾碼名為.h,C語言代碼由源文件和頭文件構 ...
1、經典入門:hello world
1 #include <stdio.h> 2 3 int main(void) 4 { 5 printf("hello world.\n"); 6 7 return 0; 8 }
註:上面所使用的關鍵字:include 頭文件包含
int 整型,用來表示整數的類型
void 空類型
return 函數返回
2、基本概念:
源文件:源文件即源程式代碼文件,C語言源文件尾碼名是.c;
頭文件:頭文件的尾碼名為.h,C語言代碼由源文件和頭文件構成;
關鍵字:關鍵字是C語言已經定義好的一些字,這些字在C語言中代表著一些特殊含義,我們必須搞懂每個關鍵字的所有含義和用法,否則就看不懂C語言程式;
註釋:C語言中的註釋一般以//開頭,或者/* */,註釋是給程式員看的,編譯器編譯程式的時候是忽略註釋內容的,所以機器根本看不見註釋,也不理註釋;
符號:C語言中包含很多符號,如; : , + - * / () [] {} 等等,每個符號都有自己的含義,必須理解它們的含義才能看懂C語言程式;
變數:可以發生變化的量。C語言程式中用變數來進行計算;
函數:函數是C語言的一個基本組成單位,一個C語言程式其實就是由一個或多個函數組成的,每個函數用來完成某項功能,函數也可以調用別的函數來完成其功能。函數的標誌是()。C語言中有一個特殊的函數叫
main(),這個函數是整個程式內定的入口,也就是說整個C語言程式是從main()函數開始執行的,其他的函數都是直接或者間接被main()調用的。
3、寫代碼的步驟:
(1) 使用編輯器(如vi)編輯源代碼;
(2) 使用編譯器把源程式轉化成可執行程式,我們在Linux中使用的編譯器一般是gcc;
如:gcc hello.c 對hello.c進行編譯後生成可執行文件a.out
gcc hello.c -o hello 對hello.c進行編譯生成指定名字的可執行文件hello
(3) 執行編譯生成的可執行程式,即./hello;
(4) 執行程式後若發現程式結果不對,這時候就要返回來看源代碼哪裡不對,然後對其進行修改,再編譯執行,再看結果,如此反覆直到程式執行結果正確為止;
4、VMWare共用文件夾的使用:
當我們是使用虛擬機VMWare中安裝的Ubuntu時,我們一般會在Windows中編輯源代碼,而在Linux中來編譯和執行源代碼,這時就需要在Windows與Linux間進行交互;
在Windows與Linux間進行交互有兩種方法:smb伺服器(需要自己搭建,較複雜,可以自己在網上尋找相關教程)、VMWare的共用文件夾(僅需簡單設置即可使用,下麵簡單介紹);
建立Windows的共用文件夾:
(1) 先在Windows中創建一個文件夾,切記要使用英文名稱;
(2) VMWare中的菜單欄里的VM -> Settings -> Options -> Shared Folders選項卡,右邊上側選擇Always Enabled,下麵點擊Add,next,在打開的選項卡中HostPath項目中瀏覽選擇剛纔第一步中創建
的文件夾,下麵Name中會自動彈出一個相同的名字,這個名字就是將來Windows中的文件夾在linux虛擬機中的映射文件夾,名字可以改也可以不改。然後一直OK,完成即可。
(3) 在linux中,直接到 /mnt/hgfs目錄下,即可找到剛纔第二步中Name相同的名字的文件夾,這個目錄即是第一步中Windows中目錄在linux下的映射。
5、數據類型:
(1) 整型:C語言中的整型對應數學中的整數,整型變數是用來描述一個整數值的,整型變數經過計算後也只能是整數(整型),不可能出現小數(浮點型);
C語言中整形有三種:int 整型
short int 短整型,可簡寫為short
long int 長整型,可簡寫為long
1 #include <stdio.h> 2 3 int main(void) 4 { 5 int a,b,c; // 定義三個了整形變數a、b、c 6 a = 12; // 賦值語句,將=右邊的12賦值給左邊的變數a 7 b = 23; 8 c = a + b; // 運算式,把a+b的結果賦值給c 9 printf("c = %d.\n",c); 10 11 return 0; 12 }
(2) 浮點型:C語言中的浮點型對應數學中的小數。浮點型有float和double兩種,使用方式相同,而表示的範圍和精度不同。float表示的範圍小,精度低(小數點後6位),
而double表示範圍大,精度高。(小數點後16位);
註:printf中列印float或double類型,是用%f,而不是%d;
1 #include <stdio.h> 2 3 int main(void) 4 { 5 /* 6 float f1 = 3.14; 7 8 printf("f1 = %f.\n",f1); // float精度夠,正確輸出我們需要的值 9 10 f1 = 3.141592653; 11 12 printf("f1 = %f.\n",f1); // float精度不夠,所以按照精度取捨了 13 */ 14 double f1 = 3.14; 15 16 printf("f1 = %f.\n",f1); 17 18 f1 = 3.14159265312345678912; 19 20 printf("f1 = %2.20f.\n",f1); 21 22 return 0; 23 }
(3) 字元型:字元型對應ASCII字元。ASCII字元是一種編碼,就是用數字編碼來表示一個符號的一種方法,本質上說,字元型其實也是整型,只是這些整型數被用來表示一些字元的ASCII碼值,所以叫做
字元型。字元型一般用8位二進位表示,無符號字元型範圍是0~255;
1 #include <stdio.h> 2 3 int main(void) 4 { 5 char c1 = 'K'; 6 7 // 使用%d來列印是列印出字元所對應的ASCII碼值,使用%c來列印是列印出字元本身 8 printf("c1 = %d, c1 = %c\n", c1, c1); 9 10 c1 = c1 + 5; 11 12 printf("c1 = %d, c1 = %c\n", c1, c1); 13 14 return 0; 15 }
(4) 有符號數和無符號數:數學中的數都是有符號的,即有正數和負數之分。所以電腦中的數據類型也有符號,分為有符號數和無符號數;
有符號數:整型: signed int 可簡寫為int
signed long int 可簡寫為long
signed short int 可簡寫為short
signed 表示signed int
浮點型: signed float 可簡寫為float
signed double 可簡寫為double
字元型: signed char 可簡寫為char
無符號數:整型: unsigned int 無簡寫
unsigned long int 可簡寫為unsigned long
unsigned short int 可簡寫為unsigned short
浮點型:沒有無符號浮點數
字元型: unsigned char 無簡寫
註:對於整形和字元型來說,有符號數和無符號數表示的範圍是不同的;
6、常用運算符:
(1) 數學運算符:與數學中意義相同: + 加號
- 減號
* 乘號
/ 除號
% 取餘符號
() 括弧里的表達式優先順序最高
與數學中的意義不同:= 賦值運算符,不同於數學中的等號。賦值運算符的作用是經過運算後符號左邊(左值,一般是一個變數)的值等於右邊(右值,一般是常數或變數)的值了
+= x = x + y; 等價於 x += y
-= x = x - y; 等價於 x -= y
*= x = x * y; 等價於 x *= y
/= x = x / y; 等價於 x /= y
%= x = x % y; 等價於 x %= y
1 #include <stdio.h> 2 3 int main(void) 4 { 5 /* 6 int a, b, c, d, e; 7 8 a = 13; 9 b = 4; 10 c = 7; 11 12 d = a + b / c; // 除的優先順序高,先除再加 13 e = (a + b) / c; // 括弧里的表達式優先順序最高,先算括弧里的表達式再算括弧外的表達式 14 15 printf("d = %d, e = %d.\n", d, e); 16 */ 17 int a, b, c, d; 18 19 a = 17; 20 b = 4; 21 c = a / b; // 除 22 d = a % b; // 取餘 23 24 printf("a = %d, b = %d, c = %d, d = %d.\n", a, b, c, d); 25 26 return 0; 27 }
(2) 判斷運算符:== 等於
!= 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於
(3) 逗號運算符:, 主要是用來分割
(4) ++與--:++ a++; 等價於 ++a; 等價於 a = a + 1; 等價於 a += 1;
-- a--; 等價於 --a; 等價於 a = a - 1; 等價於 a -= 1;
1 #include <stdio.h> 2 3 int main(void) 4 { 5 int a, b, c, d; 6 7 a = 4; 8 a++; 9 printf("a = %d.\n", a); 10 11 //a = 4; 12 ++a; 13 printf("a = %d.\n", a); 14 15 //a = 4; 16 a += 1; 17 printf("a = %d.\n", a); 18 19 //a = 4; 20 a = a + 1; 21 printf("a = %d.\n", a); 22 23 return 0; 24 }
(以上所述內容為學習朱老師的嵌入式課程後複習筆記所得,目的是自己複習鞏固知識,同時把自己學到的知識分享出來。能力有限,水平一般,如有錯誤,歡迎指正,謝謝!)
2017-02-25 19:15:48