歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C語言的基本概念

C語言的基本概念

日期:2017/3/1 9:05:23   编辑:Linux編程

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 }

(以上所述內容為學習朱老師的嵌入式課程後復習筆記所得,目的是自己復習鞏固知識,同時把自己學到的知識分享出來。能力有限,水平一般,如有錯誤,歡迎指正,謝謝!)

Copyright © Linux教程網 All Rights Reserved