歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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 }

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

Copyright © Linux教程網 All Rights Reserved