標籤:單元 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語言學習筆記