C語言_第二講_規範以及常用資料類型

來源:互聯網
上載者:User

標籤:維護   良好的   不能   平台   部分   增加   空格   連結   變數   

一丶編碼規範基礎資料型別 (Elementary Data Type) 編碼規範

任何程式員,都應該有良好的的編碼習慣,便於以後的代碼可讀性和維護

常見了編碼規範有

匈牙利命名法

駝峰式大小寫

匈牙利命名法:

是電腦程式設計中的一種變數命名規則,此命名法又可細分為:系統匈牙利命名法匈牙利應用命名法

匈牙利命名法具備語言獨立的特性,並且首次在BCPL語言中被大量使用。由於BCPL只有機器字這一種資料類型,因此這種語言本身無法協助程式員來記住變數的類型。匈牙利命名法通過明確每個變數的資料類型來解決這個問題。

在匈牙利命名法中,一個變數名由一個或多個小寫字母開始,這些字母有助於記憶變數的類型和用途,緊跟著的就是程式員選擇的任何名稱。這個後半部分的首字母可以大寫,以區別前面的類型指示字母(參見駝峰式大小寫)。

例如: i_de f_fd db_d ch_c   第一個給定的資訊可以很明確的直到是什麼類型的.

便於代碼的可讀性

駝峰式大小寫:

駝峰式大小寫Camel-CaseCamel Casecamel case),電腦程式編寫時的一套命名規則(慣例)。

當變數名和函數名稱是由二個或多個單字連結在一起,而構成的唯一識別字時,利用“駝峰式大小寫”來表示,可以增加變數和函數的可讀性。

例如: AddSum()    SubValue BinarraySerach()   由此可以看出每個函數的作用

例如第一個 加一個數的總數  第二個減去值  第三個位元組尋找.

拿到一個編輯器的時候

第一步:

講他的Tab鍵設定為空白格鍵替換,這樣可以保證在任何平台下的代碼都是一樣看.

第二步:

編寫代碼的時候每句代碼如果依賴上一層代碼的關係,需要在首行加上縮排.

第三步:

講編輯器設定線,可以保證代碼不要超過,這樣有助於代碼的可讀性

第四步:

編寫原始碼的時候上邊要加註釋 注釋要求是:

要求(可以是項目要求,功能要求,做什麼的說出來)

時間(你修改後的時間)

姓名(你什麼時候修改的,加上時間,加上自己的姓名)

二丶 Scanf函數的常見用法

Scanf(%d,%d,&a,&b);

對於scanf函數來說,在掃描輸入的時候,你加什麼,輸入的分隔字元號就要是什麼

一般scanf預設都是空格或者斷行符號是分隔字元的.

Scanf函數中可以放Regex

常見的Regex有:

Scanf(%[0-9]d,&a);代表只能輸入0-9,不對的不會輸出

Scanf(%a-z]d,&a);代表只能輸入a-z,不對的不會輸出

Scanf(%[^5]d,&a);代表不能輸入五,輸入五不會掃描進去

scanf和 sscanf的區別

Scanf是從標準輸入裝置中掃描輸入的

Sscanf是從標準輸入中掃描輸入到字串當中的,他也可以用Regex.一般很常用.

三丶記憶體結構大體的簡要

任何一個程式訪問理論上是4G的記憶體

但是作業系統占高2g的記憶體此時這個記憶體是不可以讀取和修改的,因為這塊成為Ring3 也可以成為R0

除非你有作業系統的許可權.

而低2g還不是程式可以直接存取的

還可以劃分為 低64 和高64

這些是使用者區用於和作業系統互動的緩衝區

現在剩下的記憶體還可以再分為

棧段

堆段

代碼區

資料區段

也就是咱們程式員常說的記憶體四區

而現在你的程式運行起來記憶體也不是都給你的,而是你需要多少我給你多少.

這樣就保證了程式可以一下開2-30個了.

下面看看記憶體模型

 

四丶基礎資料型別 (Elementary Data Type)

C語言和同類型相比有很多的資料類型

其中__int64 的long類型是非標準類型,如果從商業化角度來看,微軟就可以牢牢的把握住

這些人的平台,都是依賴自己的.因為非標準類型的代碼,不可以移植的.

溢出和進位的區別

溢出:是針對有符號資料的描述,意思就是當資料到最大值的時候,如果在+1那麼資料就會溢出有可能標稱負數,恢複代價大.有可能不能恢複.

進位:

進位是針對無符號資料的描述,當資料超過這個資料的時候,那麼就會產生進位.當前值還是有效.可以通過一定的手段獲得進位元據.

 

五丶字元和字串

字元穿的儲存和互動:

總共提出來2中概念

一種是:

C語言風格的,在字元後面以0結尾,代表是一個字串.

另一種是Pascal風格

前幾位(不確定,一般是2位)給定大小,後面儲存大小一樣的字元,形成一個字串

他們的優缺點

C語言:

優點:靈活性比較高,特別是網路通訊的時候,只要不是以0結尾,那麼自己可以傳輸任意的字元.

缺點:缺點就是比較明顯了,如果要找第N個字元,那麼要一個一個的尋找,

Pascal:

優點:

長度固定,訪問N個的效率高,可以以跳板的形式訪問

缺點:

缺乏靈活性,如果用於網路,那麼傳輸完之後只能在傳輸新的,不能接著傳輸了.

而微軟的是2中特性相結合

前表類型,後邊以0結尾,(比較狡猾)這樣做的好處是,相容性更高,自家的產品賣得更好.

六丶字元和字串的區別

‘a’ 和””a’’的區別

字元a是可以訪問Ascii編碼的

而字串a則是引用的字串的首地址

 

七丶標識符的規範

標識符的規範是:C語言中,定義標識符只能是數字字母底線

其中數字不能開頭

例如:

2ac 這樣定義是不對的,這樣的話分不清2是幹什麼的.

八丶C語言中的除法規則

規則式向0取整

3/2 = 1  數學中是1.5

而數學中有向上取整和向下取整的意思

就是1.5 如果向下取整,意思就是取不大於自己的最大整數 也就是2

向上取整就是取不小於自己的最大整數 也就是1

所以在C語言中右移符號使用時必須要判斷商是否是負數

如果是負數那麼因為規則式向0取整,那麼就會出現錯誤.

1.5向0取整,就是捨棄小數0.5

九丶%號的原理

我們都知道%號的作用

8%3=2

-8%3=-2

8%-3=2

-8%-3=-2

算出來的結果和左運算元符號有關,左運算元是什麼符號那麼餘數就是什麼符號.

但是原理咱們不知道,

其實原理就是

A/b=q...r

A = q*b+r;

R = a-q*b;

代入值後發現

8/3=2..2

8 = 2*3+2

餘數2 = 8-2*3

所以結果就是2

 

C語言_第二講_規範以及常用資料類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.