NDK探究之旅《二》——C語言的基本認識

codeGoogle發表於2019-02-06

如果對jni和ndk概念比較模糊,建議先閱讀上一篇博文

NDK探究之旅《一》——對jni和NDK的認識

C語言是什麼

  • C語言是一門通用計算機程式語言,應用廣泛。

  • C語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言

如何看待C語言

  • 學好C語言,你可以很好地應付任何一種程式設計工具。

  • 一定要多敲程式碼,通過程式瞭解相關知識。幾經反覆方得正果。

  • 不要把學習C語言當成一種任務,更不要把它看成很難完成的任務。要充滿自信,只要是一個智力正常的人都能學好C語言。始終保持遊戲的心態,多發現其中的樂趣。當感到程式設計趣味無窮,那你在電腦方面將前程無量。

  • 如果一個程式一時無法弄清楚最後暫時放在一邊,過一段時間你可能會從其他的程式中悟出道理。

  • C語言是一個整體,各個方面是有機聯絡的,要從總體上把握它,不要把它割裂成互不關聯的部件。

  • 不要完全相信教材,所有結論竟實踐驗證最好

C程式的構成

儘管C程式的內容千變萬化,但是它們的構成都是一致的,一個完整的C源程式的格式可以如下表示:

  • 編譯預處理

  • 主函式()

  • 函式()

C語言的基本詞法

C語言的基本詞法由三部分組成:

  • 符號集

    符號集就是一門語言中允許出現的字元的集合,C語言的符號集就是ASCⅡ碼錶中的一些字元,在鍵盤上不能直接得到(比如說響鈴字元)

  • 關鍵字

    識別符號就是用以標識的符號。正如現實生活中給每一個人都取一個名字一樣,C語言中的每一個物件(如函式、變數等)都必須取一個識別符號以和其它物件區別開。

  • 保留字。

    關鍵字實際上就是一些特殊的識別符號,又稱保留字,這些保留字不允許使用者對它重新定義。

    標頭檔案、資料說明、函式的開始和結束標誌

  • 標頭檔案:也稱為包含檔案或標題檔案,一般放在一個C語言程式的開頭,用#include″檔名″的格式,其中檔名是標頭檔案名,一般用.h作為副檔名。

  • 資料說明:C語言中的資料分常量和變數兩種。

  • 常量:有數值常量和符號常量兩種。

  • 數值常量:可以分為整型常量、實型常量、浮點型常量和字元常量。

  • 符號常量:用一個識別符號代表的一個常量,又稱識別符號形式的常量

  • 變數:其值可以改變的量,變數名習慣上用小寫字母表示。

  • 識別符號:用來標識變數名、符號常量名、函式名、陣列名、型別名、檔名的有效字元序列。

  • 識別符號的命名規則:C語言中識別符號只能由字母、數字下劃線三種字元組成,且第一個字元必須為字母或下劃線。

    • C語言是大小寫敏感語言,即對大小寫字母認為是不同的字元。
    • C語言中識別符號的長度隨系統不同而字,如TURBOC中取前8個字元,8個字元後面的字元會自動取消。

C語言的基本資料型別

  • java 語言的八基本型別
    • byte 1個位元組 8位
    • int 4個位元組 32位
    • double 8個位元組 64位
    • float 個位元組 32位
    • long 8個位元組 64位
    • char 2個位元組 16位
    • boolean 1個位元組 8位
    • char 2個位元組 8位
  • C語言的基本資料型別

    • char 1個byte 8位 和java不同
    • long 4個byte 32位 和java不同
    • int 4個byte 32位 和java相同
    • double 8個byte 和java相同
    • float 4個位元組 和java相同
    • short 2個byte 32位
    • signed
    • unsigned
    • void

    注意:

    • 在C語言中,沒有boolean型別。 0假, 非0真
    • 在c語言中,沒有byte型別,可以用char表示byte

eg:
%d表示的是一個int資料型別。%只是一種格式
&是取地址,&i表示為取記憶體中i的地址

修飾符的作用

  • unsigned 無符號—》長度為 0~2的32次方 – 1
  • unsigned 有符號的—》長度為-2的32次方~2的31次方-1

輸出型別函式:
%d—> int

格式字元 意義
d% 以十進位制形式輸出帶符號整數(正數不輸出符號)–>int
o 以八進位制形式輸出無符號整數(不輸出字首0)
x,X 以十六進位制形式輸出無符號整數(不輸出字首Ox)—>int 或者是 long int short int
u 以十進位制形式輸出無符號整數
f 以小數形式輸出單、雙精度實數
e,E 以指數形式輸出單、雙精度實數
g,G 以%f或%e中較短的輸出寬度輸出單、雙精度實數
c 輸出單個字元
s 輸出字串
ld long int
hd 短整形 half
lf 輸出 double

C語言常用轉義字元表

ASCII碼錶完整版

C語言常用轉義字元表

(來自blog.csdn.net/abc5382334/…)

  • 字元常量中使用單引號和反斜槓以及字元常量中使用雙引號和反斜槓時,都必須使用轉義字元表示,即在這些字元前加上反斜槓。
  • 在C程式中使用轉義字元 d d d或者 x h h可以方便靈活地表示任意字元。
  • d d d為斜槓後面跟三位八進位制數,該三位八進位制數的值即為對應的八進位制A S C I I碼值。

  • x後面跟兩位十六進位制數,該兩位十六進位制數為對應字元的十六進位制A S C I I碼值。

使用轉義字元時需要注意以下問題:

  • 轉義字元中只能使用小寫字母,每個轉義字元只能看作一個字元。

  • v垂直製表和f換頁符對螢幕沒有任何影響,但會影響印表機執行響應操作。

  • 在C程式中,使用不可列印字元時,通常用轉義字元表示

注:

  • `v`垂直製表和f換頁符對螢幕沒有任何影響,但會影響印表機執行響應操作。

  • 其實應該叫回車換行。換行只是換一行,不改變游標的橫座標;回車只是回到行首,不改變游標的縱座標。

  • 游標向前移動四格或八格,可以在編譯器裡設定

  • `在字元裡(即單引號裡)使用。在字串裡(即雙引號裡)不需要,只要用`即可。

  • ?其實不必要。只要用?就可以了(在windows VC6和tc2中驗證)。

簡單的踩坑:

cpp `system` undeclared (first use this function)

解決辦法:
zhidao.baidu.com/question/55…

注意
列印的時候,什麼樣的資料,需要用什麼樣的佔位符,否則資料列印出錯

相信自己,沒有做不到的,只有想不到的

如果你覺得此文對您有所幫助,歡迎入群 QQ交流群 :644196190
微信公眾號:終端研發部

技術+職場
技術+職場

相關文章