第三章 順序程式設計
1.資料的表現形式及其運算
計算機高階語言中,資料有兩種表現形式:常量和變數。
整型常量:
實型常量:
字元常量:
普通字元
字串常量:
符號常量:
用#define指令,指定用符號名稱代表乙個常量。如: #define pi 3.1416
符號常量不佔記憶體,只是乙個臨時符號,預編譯結束後這個符號就不存在了。
變數代表乙個有名字的,具有特定屬性的乙個儲存單元。必須先定義,後使用。在對程式編譯連線時由編譯系統給每乙個變數名分配對應的記憶體位址。
c99允許使用
常變數,如:const int a=3; 常變數具有變數的基本屬性,有型別,佔儲存單元,只是不允許改變其值。
可以說,常變數是有名字的不變數,而常量是沒有名字的不變數。
識別符號:用來對變數,符號常量名,函式,陣列型別等命名的有效字元稱為識別符號,c語言規定識別符號只能由字母,數字和下劃線3種字元組成,且第1個字元必須為字母或下劃線。
2.資料型別
整型資料:
基本整形int vc中佔4個位元組(依具體編譯系統而定) 儲存單元中的儲存方式是用整數的
補碼形式存放
短整形short int
vc中佔2個位元組
長整型long int
4個位元組
雙長整型long long int
8個位元組
整型變數的符號屬性:
只有整型(包括字元型)資料可以加signed或unsigned修飾符,實型資料不能加。
字元型資料:
ascii字符集包括了127個字元,最多用7個二進位制位就可以表示。所以,在c中指定用乙個位元組(8位)儲存乙個字元(所有系統都不例外)。此時,位元組中的第1位置為0。
'\0'的ascii碼值是0。
大寫字母'a'的ascii**是十進位制數65,大寫字母'z'的ascii**是十進位制數90。
小寫字母'a'的ascii**是十進位制數97,
小寫字母'z'的ascii**是十進位制數122。
注意:字元'1'和整數1是不同的概念,數字字元'1'的ascii**是十進位制數49,不是1。
有符號字元型:-128~127 無符號字元型:0~255
浮點型資料:
由於小數點的位置可以浮動,所以實數的指數形式稱為浮點數。
單精度浮點型float 4個位元組
雙精度浮點型double 8個位元組(c中的實型常量都預設為雙精度)
長雙精度浮點型long double 16個位元組
ieee浮點數表示
用符號,階碼,尾數來表示。具體規格如下:
符號位階碼尾數長度
float 1 8 23 32
double 1 11 52 64
浮點數轉化為二進位制數,例:12.25 float 32位
12.25化為二進位制表示 1100.01 【規定小數點前只能有乙個'1'】 這裡需要將小數點前移
3位8位階碼無符號
0 1 2 3 4 5 6 ......
127...... ......255
左移,位數+127 階碼大於127表示左移
右移,127-位數 階碼小於127表示右移
1 100.01
0 0111 1111 00000000000000000000000 //127做基準,
0111 1111
+ 0 0000 0011
10001000000000000000000
= 0 1000 0010 10001000000000000000000
0100 0001 0100 0100 0000 0000 0000 0000
0x41 44 00 00 而在記憶體中00 00 44 41
記憶體中,高位址存放高位,低位址存放低位。(小端存放)
運算子和表示式:
·i+++j首先是i++,然後再+j,且注意i++是事後運算。
· &表示按位與,&&表示與運算(返回布林值)。
同理|表示按位或,||表示進行或運算。
·不同型別資料的混合運算
為防止精度損失,如果必要的話,型別總是被提公升為較寬的型別。
float+double => double
所有含有小於整型的有序型別(如char,short int)的算術表示式在計算之前其型別都會被轉換為整型。
char+int => int
char+unsigned char => int
short+unsigned short => int
int + unsigned int => unsigned int
如果沒有出現unsigned int,則型別轉化為int。如果出現unsigned int,則轉化為unsigned int。
void main()
3.c語句
復合賦值運算子:
x%=y+3 x%=(y+3) x=x%(y+3) 三者是等價的。
賦值表示式:
a=(b=3*4) 將3*4的值先賦給變數b,然後把變數b的值賦給變數a,最後a和b的值都等於12。
(a=b)=3*4 編譯不通過!賦值表示式(a=b)不能作為左值。
第三章學習筆記
執行執行緒,簡稱執行緒,是在程序中活動的物件。核心排程的物件是執行緒,而不是程序。程序描述符中包含的資料能完整地描述乙個正在執行的程式 各種狀態之間存在轉換的條件,若滿足則進行轉換,跟模擬電路中所學的狀態機是乙個道理。通過st task state task,state 函式來設定當前程序狀態 fo...
學習C 第三章
經過網上發現和自己總結,最終把 改為 include using namespace std int main 我的同學用的是另外乙個編譯器,而我用的是vs,他根據原文打沒有出現報錯,關於隱式型別轉換貌似很少用到,這其實類似於隱式型別轉換不太支援然後轉化為指標了。具體解決方式就是 把 char a ...
C 學習筆記 第三章總結
c 入門經典第七期 第三章變數和表示式書後總結 變數是有名稱和型別的資料塊。變數只有經過宣告和初始化後,才能使用。可以把字面值賦予變數,以初始化它們,變數還可以在單個步驟中宣告和初始化。表示式李爺運算子和運算元來建立,其中運算子對運算元執行操作。運算子分為 一元 二元和三元運算子,分別操作1 2和3...