C語言的基本概念

来源:http://www.cnblogs.com/ARM-kang/archive/2017/02/25/6442516.html
-Advertisement-
Play Games

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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 御花園系統開發,御花園模式定製開發,聯繫微電188-2624-7572.(我們是軟體開發公司,非平臺運營商,玩家勿擾) 御花園平臺介紹 御花園是皇家專用的花園,現在你自己也可以擁有一個屬於你私人獨有的花園,來御花園游戲系統吧!這裡有各種各樣的花朵,一年四季都能盛開,這個游戲不但好玩,賞心悅目,還能為 ...
  • 本文轉自:http://m.blog.csdn.net/article/details?id=51638925 寫在前面 本文來自iOS Tutorial Team 的 Marcelo Fabri,他是Movile的一名 iOS 程式員。這是他的個人網站:http://www.marcelofabr ...
  • 描述了在window系統下android Studio 中git如何使用Git ...
  • LruCache是一個泛型類,它內部採用LinkedHashMap,並以強引用的方式存儲外界的緩存對象,提供get和put方法來完成緩存的獲取和添加操作。當緩存滿時,LruCache會移除較早的緩存對象,然後再添加新的緩存對象。對Java中四種引用類型還不是特別清楚的讀者可以自行查閱相關資料,這裡不 ...
  • 前言 啦啦啦~各位小伙伴們好~經過這一學期的Android知識的學習,我們學到了很多和Android開發相關的知識,這一學期的學習也要告一段落了。(博客中有很多照片上有代碼,代碼文本較小,各位可按下Ctrl和前滾輪放大後再看~) 一起進入我們今天的相關內容~這次我們將一起學習使用 android 手 ...
  • 寫在前面:當你部署一臺伺服器,第一步不應該是部署應用,安全是才是首要任務 如果某一天當你登錄伺服器發現 /bin/bash –i,python -c 'import pty; pty.spawn("/bin/sh")' 等命令在伺服器上出現的時候,那麼恭喜你,伺服器被入侵了 但是入侵者都是很聰明的, ...
  • ownCloud(官網)是一款開源的私有雲框架,可以通過它實現個人網盤的功能,如果擁有一個性能不錯的VPS,那麼就可以擺脫奇慢無比的百度雲等網盤啦!我花了大約一天的時間總算搭好了ownCloud。 ...
  • 作者信息 作者: 彭東林 郵箱: [email protected] QQ: 405728433 軟體平臺 主機: Ubuntu14.04 64位版本 模擬器:Qemu-2.8.0 Linux內核版本: Linux-4.10 Busybox版本:busybox-1.24.2 工具鏈: ar ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...