c語言核心整理之資料型別,運算子,表示式和語句

2021-08-03 14:06:57 字數 2703 閱讀 1603

1,資料型別,運算子,表示式和語句

(1)基本資料型別:整型、浮點型、指標和聚合型別(陣列、結構體)

1)整型:字元、短整型、整型、長整型(都分為有符號和無符號兩種)

長整型至少應該和整型一樣長,而整型至少應該和短整型一樣長。(short int至少16位,long int至少32位,一般3個整型值都被設為32位)

標頭檔案limits.h說明了各種不同的整數型別的特點:變數範圍的限制

變數的最小範圍:

char:【0到127】

signed char:【-127到127】

unsigned char:【0至255】

short int:【-32767到32767】

unsigned short int:【0到65535】

int:【-32767到32767】

unsigned int:【0到65535】

long int:【-2147483647到2147483647】

unsigned long int:【0到4294967295】

字面值(字面值常量):乙個實體,指定了自身的值,並且不允許發生改變

命名常量:宣告為const的變數[const定義變數時,列印都為原數,若利用指標修改資料,只有列印用指標形式表示的變數,變數值才會發生改變。]

寬字元常量(wchar_t)多位元組字元常量的前面有乙個l   l'x'

eg:把乙個字元轉換為乙個二進位制值

value = value - 48;

value = value - \60;

value = value - '0';

列舉:列舉型別就是指它的值為符號常量而不是字面值的型別(enum),這種型別的變數實際上以整型的方式儲存,這些符號名的實際值都是整型值(這裡的整型值可以改變,未顯式指定時則比前面乙個符號名的值大1)。

2)浮點型:float(單精度),double(雙精度),long double(擴充套件精度)

標頭檔案float.h表示能儲存的最大值

浮點數字面值在預設情況下都是double型別的,加l或l為long double型,加f或f為float型

3)指標:變數的值儲存於計算機的記憶體中,每個變數都佔據乙個特定的位置。每個記憶體位置都由位址唯一確定並引用,指標是位址的另乙個名字。

指標常量

字串常量:一串以nul位元組結尾的零個或多個字元。(\0)/指標/陣列

(2)運算子

1)算術操作符:+ - * / %

2)移位操作符:左移<< 右移》

從左邊移入新位時,可以選擇兩種方案;

一,邏輯移位:左邊移入的位用0填充

二,算術移位:左邊移入的位由原值的符號位決定,當符號位為1時,則填充位為1,符號位為0時,填充為0.

算術左移與邏輯左移的結果都相同,只在右移時不同(運算元為負數)。

無符號值得移位操作都是邏輯移位,有符號數根據編譯器決定。

3)位操作符:& | ^(異或)

4)賦值運算:=(復合賦值符)

5)單目操作符:!(邏輯反操作) ~(按位取反) ++ -- + -(產生運算元的負值) & * sizeof (型別)[強制型別轉換]

關於sizeof:sizeof(a=b+1)並沒有向a賦任何值

6)關係操作符:< > <= >= != == [筆

7)邏輯操作符:&& ||[短路求值]

8)條件操作符:?:

9)逗號操作符:逗號表示式從左至右依次執行,但結果為最後乙個表示式的值。

10)下標引用、函式呼叫和結構成員

.和->的使用:.   左邊結構體變數

->  左邊結構體指標

(3)表示式

1)隱式型別轉換:整型提公升

2)算術轉換:即不同型別之間的轉換

3)操作符的屬性

術語lexp表示左值表示式,rexp表示右值表示式。【左值代表乙個位置,右值表示乙個值,故,在使用右值的地方可以使用左值,但使用左值的地方不能使用右值】

4)優先順序和求值的順序

()聚組  ()函式呼叫    .  ->  ++字尾自增  --字尾自減  !  ~  +單目,表示正值  -單目,表示負值  ++字首自增  --字首自減  *間接訪問

&取位址  sizeof  (型別)  *  /  %  +  -  <<  >>  >  >=  <  <=  ==  !=  &位與  ^位異或  |  &&  ||  ?:  =  +=  -=  *=  /=  %=  <<=

>>=  &=  ^=  |=  ,      

(4)語句

1)空語句:只有;

2)表示式語句:表示式加;

3)**塊:位於一對花括號之內的可選的宣告和語句列表。

4)if語句:各種型別的if 

5)while語句:while迴圈:迴圈的測試在迴圈體開始之前進行,一旦測試結果為假,則不執行。

break語句:用於永久終止迴圈,在執行完該語句之後,執行流下一條執行的語句就是迴圈正常結束後應該執行的語句。

continue語句:用於永久終止當前的這次迴圈,在執行完該語句之後,執行流接下來就是重新測試表示式的值,決定是否繼續執行迴圈。

6)for語句:for(初始化部分;條件部分;調整部分)

7)do語句:迴圈體至少執行一次。do…………while…………

8)switch語句:break語句、default子句

9)goto語句:goto語句需要加標籤,一般不使用goto語句,但它可用於跳出多層巢狀的迴圈,較方便。

若有錯誤,歡迎指正。

資料型別之數字型別 運算子

一 整 形 int 整形就是整數型別 num 123 數字型別不用加引號,加引號的都是字串形式。print num 字串轉換數字 int num 123 print type num num type 檢視資料型別 a int num print type a a str 123 int 123 n...

資料型別 運算子

一.資料型別 1.整數型別 2.浮點數 定點數 m為精度 資料總長度 d為標度 小數點後長度 單精度 佔4個位元組,有效數字是7位 雙精度 佔8個位元組,有效數字是16位 在一定情況下,浮點數能表示更大的儲存範圍,但容易產生誤差。因而對精度要求較高時,選擇定點數。定點數以字串儲存。3.日期 時間 4...

資料型別。運算子

一.變數不能重複宣告 int a 10 int a 100 錯誤 二.8種資料型別 1.整形 byte short int long byte 的取值範圍 128 127 2的7次方到2的7次方 1 short 的取值範圍 32768 32767 2的15次方到2的15次方 1 int 的取值範圍 ...