C程式語言讀書筆記 (二)型別 運算子與表示式

2021-08-22 19:42:30 字數 2320 閱讀 1517

*注意本章例題和習題中的函式!*

1.下劃線被看做是字母,通常用於命名較長的變數名,以提高可讀性。

由於庫歷程的名字通常以下劃線開頭,因此變數名不要以下劃線開頭。

2.short型別通常為16位,long32位,int為16或32位

short與int至少為16位,long型別至少為32位

short不長於int,int不長於long

3.有關型別的長度的定義的符號常量以及其他與機器和編譯器相關的屬性可以在標準標頭檔案limits.h和float.h中找到。

4.乙個字元常量是乙個整數,字元常量一般用來與其他字元進行比較,但也可以像其他整數一樣參與數值運算。

5.用』\ooo』表示任意位元組大小的位模式,其中ooo代表1-3個八進位制數字

還可以用』\xhh』表示,hh是乙個或者多個十六進製制數字。

6.字元常量『\0』表示值為0的字元,也就是空字元null,我們通常用』\0』的形式代替0,以強調某些表示式的字元屬性,但是其數字值為0.

7.字串常量就是字元陣列。

8.列舉為建立常量值與名字之間的關聯提供了一種便利的方式,相對於#define語句來說,它的優勢在於常量值可以自動生成。儘管可以生命enum型別的變數,但是編譯器不檢查這種型別的變數中儲存的值是否為該列舉的有效值。不過列舉變數提供這種檢查,因此列舉比#define更具有優勢,此外,除錯程式可以以符號形式列印出列舉變數的值。

9.所有變數必須先宣告後使用。

10.對於陣列,const限定陣列所有元素的值都不能被修改:const char msg = 「warning: 」

const限定符也可以配合陣列引數使用,它表明函式不能修改陣列元素的值:int strlen(const char);

11.如果某一年的年份能被4整除但是不能被100整除,那麼這一年就是閏年,此外能被400整除的年份也是閏年。

if((year % 4 == 0 && year %100 != 0) || year % 400 == 0)

printf(「%d is a leap year\n」,year);

else

printf(「%d is not a leap year\n」, year);

13.表示式 s[i] - 『0』 能夠計算出s[i]中儲存的字元所對應的數字值,這是因為』0』,』1』等在字符集中對應的數值是乙個連續的遞增序列。

14.把字串s轉換為相應的整型數:

int atoi (char s)

15.把字元c轉換為小寫形式:

int lower(int c)

16.當把乙個char型別的值轉換為int型別的值時,其結果有沒有可能為負整數?

對於不同的機器,其結果也不同,這反映了不同機器結構之間的區別。在某些機器中,如果char型別值的最左一位為1,則轉換為負整數(進行「符號擴充套件」),而在另一些機器中,把char型別值轉換為int型別時,在char型別值的左邊新增0,這樣導致的轉換結果總是為正值。

17.c語言的定義保證了機器的標準列印字符集中的字元不會是負值,因此,在表示式中這些字元總是正值。但是儲存在字元變數中的位模式在某些機器中可能是負的,而在另一些機器上可能是正的。為了保證程式的可移植性,如果要在char型別的變數中儲存非字元資料,最好指定signed或者unsigned限定符。

18.真 就是 非0

19.使用float型別主要是為了在使用較大的陣列時節省儲存空間,有時也為了節省機器執行時間(雙精度算術運算特別費時)

20.帶符號值與無符號值之間的比較運算是與機器相關的,因為它們取決於機器中不同整數型別的大小。

假如int佔16位,long佔32位 那麼-1l<1u.這是因為unsigned int 型別的1u將被提公升為signed long型別,但是-1l>1ul 這是因為-1l將被提公升為unsigned long型別,因而成為乙個比較大的是正數。

s[i] - 『a』 + 10 和 s[i] - 『a』 + 10 能夠計算出s[i]中儲存的字元所對應的數字值.

位運算子只能作用於整型運算元。

按位與 & 經常用於遮蔽某些二進位制位。

按位或 | 常用於將某些二進位制位置為1

按位異或 ^ 當兩個運算元對應位不相同時,將該位置為1,否則置為0

移位時,unsigned型別右移,左邊空出的部分將用0填補,對signed型別的帶符號值進行右移時,某些機器對左邊空出的部分將用0填補(算術移位) 某些機器則對左邊空出的部分用0填補(邏輯移位)

表示式的值與計算次序不確定的情況。 主要想自增運算在乙個表示式中是引用舊值還是引用新值的問題。

例如a[i] = i++; y = n++ + ++n;

《C程式語言》筆記 二 型別運算子與表示式

變數和常量是程式處理的兩種基本資料物件 宣告語句說明變數的名字及型別,也可以指定就是的初值 運算子指定將要進行的操作,表示式則把變數與常量組合起來生成新的值 所有整形都包括signed和unsigned兩種形式 變數名是由字母和數字組成,但其第乙個字元必須為字母。下劃線 也被看作是字母,通常用於命名...

C 筆記(二) 型別和成員

a class declaration starts with a header.the header specifies 例子 pair 的型別引數是 tfirst 和 tsecond public class pair public tsecond second public pair tfir...

C 入門經典學習3 型別運算子

c 入門經典學習3 型別運算子 語句用分號 來結束 快用花括號 來界定 在c 中,class 類的後面那個分號有什麼作用?class a class b 什麼用也沒有,表示乙個空語句,你刪除了一樣可以編譯,另外你加它十個八個的也可以。region 和 endregion 來定義摺疊 區域 c 值型別...