C語言學習筆記

來源:互聯網
上載者:User

標籤:單元   int   現在   efi   long   筆記   char   長度   定義變數   

dmr曾說過:C詭異離奇,缺陷重重,並獲得如此大的成功。

一、C語言中的資料類型 1.1常量和變數 常量就是程式中不可改變其值的量,一般分為整形常量(短整型和長整形,無符號和有符號)、實型常量(單精確度和雙精確度)、字元型常量、字串常量。

c語言中的整形常量一般以十進位表示,但有的時候也可以用二進位、八進位、十六進位來表示。

變數不同於常量,變數在記憶體中是可以改變其值的,在定義變數的時候要提前聲明變數的類型和變數名,定義變數的一般形式是:類型關鍵字 變數名;

例如一個簡單的小程式:

#include (stdio.h)

int main()

(

    int a;

    float b;

    char c;

    a = 1;

    b = 2.5;

    c = ‘A‘ ;

    return 0;

)

任何一個C語言程式都必須有一個主函數的入口,這個主函數就是main()函數 變數名是使用者定義的標識符,用於標識記憶體中的一個具體的儲存單元,在這個儲存單元中可以放入任何的值,簡單來說一個變數就相當於給常量起了一個名字,或者把這個變數理解為一個放物品的盒子,變數就是給這個盒子起的名字,而盒子裡面可以放你想放入的任何東西。

另外在對於變數名命名的時候應該遵循標識符命名規則:

(1)標識符只能由英文字母、數字和底線組成

(2)標識符必須以字母底線開頭

(3)不允許使用C關鍵字為標識符命名

(4)標識符可以包含任意多個字元,但一般會有更大長度的限制,與編譯器相關,不過大多情況先不會達到限制

注意:標識符是區分大小寫 另外C語言中的注釋是使用//(單行注釋)和 /* */(多行注釋)來完成的 注釋之間不能嵌套,即一個注釋中不能加入另一個注釋 多個變數之間使用逗號作為分隔字元 賦值運算子=,用於變數賦值,將右邊的運算式的值賦值給左邊的變數(左邊只能是變數,不能是常量或者運算式)

sizeof()是用來計算資料類型或運算式所佔用的能存位元組數(sizeof是關鍵字,不是函數名)

2.簡單的算術運算和算術運算式

2.1.算符運算子和運算式 C語言中的算符運算子就相當於我們小時候學習數學中的加減乘除,算符運算子又分為三種,一元運算子、二元運算子、三元運算子 其中一元、二元、和三元運算子的區別在於需要幾個運算元

一元運算子(-) 取相反數

二元運算子(* / % + -)乘,除,取餘,加,減

其中需要注意的是各運算子之間的優先順序別

在C語言中有一個和數學中的不同之處在於 eg: 1/2和1.0/2 這兩個的性質,前者是整數除法,後者是浮點數除法

注意:C語言中求餘運算僅僅限定在兩個數都是整數的情況下,不能對兩個實數型資料進行求餘運算 2.2增1和減1運算子

在這個知識點裡面值得注意的是先加加和後加加的問題

如:int i=3; 之後分別執行這兩條語句

m=i++;

m=++i;

對於語句一,m=i++的意義在於先執行m=i 的賦值運算式,之後再執行增值的 i++運算式

對於語句二,m=++i的意義在於先執行++i 的增值運算式,之後再執行m = i 的賦值運算式

同樣,i - - 和 - - i 也是如此

總結:對於此類問題可以採用就近原則,對於增1和減1的操作,後置自增自減,先取變數本身的值,再進行自增和自減的操作;前置自增自減,先進行自增自減,再取變換後的值

2.3宏常量和宏替換 &意為取地址符號 #define PI 3.14159 即為定義了一個宏常量,注意不需加上等號,而且不以分號結尾

宏常量的問題:宏常量沒有資料類型,編譯器對宏常量不進行類型檢測,只進行簡單的字串的替換,這種替換過程中容易產生錯誤

所以需要引入const常量

const 常量彌補了宏常量的一個缺陷,

如: const double PI = 3.14159; //定義類型的const常量PI

自動類型轉換和強制類型轉換

一般我們可以把每一個資料類型的階段比做成不同大小的杯子 當我有一個可以放1L水的杯子,另外還有一個可以放5L水的杯子,我們可以把1L杯子裡面的水倒入到5L的杯子裡面,那麼這個過程就相當於是一個自動轉換的過程。

那麼,我們現在來看C語言裡的資料類型自動轉換 char ,short---int---unsigned---long---unsigned---float---double---long double 從左往右就相當於從小杯子往大杯子裡面倒水的一個過程,不會產生溢出現象,因此對資料來說是安全的 另外其實還有一種轉換方式叫做強制類型轉換 強制類型轉換就相當於可以裝5L水的杯子裡面放了1L的水,之後我把這個1L的水全部倒入到一個1L的杯子裡面,這樣就實現了強制類型轉換,可是,對於強制類型來說一般是危險的,如果大杯子裡面的水小杯子放不下,那麼就會產生一種資料的溢出,就像水會撒出來一樣,資料就會丟失。

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.