一、變數的儲存型別:
1.auto:auto稱為動態變數(區域性變數)。區域性變數是指在函式內部說明的變數(有時也稱為自動變數)。預設情況下的區域性變數均屬於auto變數。區域性變數在函式呼叫時自動產生,但不會自動初始化,隨函式呼叫的結束,這個變數也就自動消失了。下次呼叫此函式時再自動產生,還要再賦值,退出時又自動消失。
2.static:static稱為靜態變數。根據變數的型別可以分為靜態區域性變數和靜態全域性變數。
1. 靜態區域性變數:它與區域性變數的區別在於:在函式退出時,這個變數始終存在,但不能被其它函式使用;當再次進入該函式時,將儲存上次的結果。其它與區域性變數一樣。
2. 靜態全程變數:只在定義它的原始檔中可見而在其它原始檔中不可見的變數。它與全域性變數的區別是:全域性變數可以被其它原始檔使用,而靜態全域性變數只能被所在的原始檔使用。
3.extern:extern稱為外部變數。為了使變數除了在定義它的原始檔中可以使用外,還可以被其它檔案使用。因此通知每乙個程式模組檔案,此時可用extern來說明。
4.register:register稱為暫存器變數。它只能用於整型和字元型變數。定義符register說明的變數被儲存在cpu的暫存器中,定義乙個整型暫存器變數可寫成: register int a;
對於以上四種資料的儲存位置:register變數存在cpu的暫存器中;auto型別變數存在記憶體的棧;static型的區域性變數和全域性變數以及extern型變數(即全域性變數),存在於記憶體的靜態區。
二、資料型別
基本資料型別:
type
size
數值範圍
無值型void
0 byte
無值域布林型
bool
1 byte
truefalse
有符號短整型
short [int] /signed short [int]
2 byte
-32768~32767
無符號短整型
unsigned short [int]
2 byte
0~65535
有符號整型
int /signed [int]
4 byte
-2147483648~2147483647
無符號整型
unsigned [int]
4 byte
0~4294967295
有符號長整型
long [int]/signed long [int]
4 byte
-2147483648~2147483647
無符號長整型
unsigned long [int]
4 byte
0~4294967295
long long
8 byte
0~18446744073709552000
有符號字元型
char/signed char
1 byte
-128~127
無符號字元型
unsigned char
1 byte
0~255
寬字元型
wchar_t (unsigned short.)
2 byte
0~65535
單精度浮點型
float
4 byte
-3.4e-38~3.4e+38
雙精度浮點型
double
8 byte
1.7e-308~1.7e+308
long double
8 byte
三、檔案型別
asc碼: 00110101 00110110 00110111 00111000
↓ ↓ ↓ ↓
十進位製碼: 5 6 7 8
四、指標和引用
五、位運算
關於「異或」運算子(^)應用
(1)使特定位翻轉
設有數01111010(2),想使其低4位翻轉,即1變0,0變1.可以將其與00001111(2)進行「異或」運算,即:
01111010
^ 00001111
01110101
運算結果的低4位正好是原數低4位的翻轉。可見,要使哪幾位翻轉就將與其進行∧運算的該幾位置為1即可。
(2)與0相「異或」,保留原值
例如:012^00=012
00001010
^00000000
00001010
因為原數中的1與0進行異或運算得1,0^0得0,故保留原數。
(3) 交換兩個值,不用臨時變數
例如:a=3,即11(2);b=4,即100(2)。
想將a和b的值互換,可以用以下賦值語句實現:
a=a∧b;
b=b∧a;
a=a∧b;
a=011(2)
(∧)b=100(2)
a=111(2)(a∧b的結果,a已變成7)
(∧)b=100(2)
b=011(2)(b∧a的結果,b已變成3)
(∧)a=111(2)
a=100(2)(a∧b的結果,a已變成4)
等效於以下兩步:
① 執行前兩個賦值語句:「a=a∧b;」和「b=b∧a;」相當於b=b∧(a∧b)。
② 再執行第三個賦值語句: a=a∧b。由於a的值等於(a∧b),b的值等於(b∧a∧b),
因此,相當於a=a∧b∧b∧a∧b,即a的值等於a∧a∧b∧b∧b,等於b。
六、new 和 delete
p = new type; //只分配堆記憶體
p = new type(x); //分配記憶體並初始化為x
p = new type[n]; //分配具有n個元素的陣列
delete p; //釋放單個變數所占用的記憶體
delete [ ]p; //釋放陣列所占用的記憶體
c 語言基礎
三個訪問描述符 public private 和protected 都可以修飾類的資料成員和成員函式 public 可以可以被任何訪問,private 只能被該類的公,私成員函式,該類的友元函式或者友元類的成員函式訪問。protected 只能被該類的公,私成員函式和該類的派生類訪問。c 中除了,和...
c語言基礎
1.問題描述 從鍵盤輸入三個整數,分別存入x,y,z三個整型變數中,計算並輸出三個數的和以及平均值。輸入形式 從鍵盤輸入三個整數,整數之間以空格隔開。輸出形式 在螢幕上分兩行顯示結果 第一行為三個數的和,整數形式輸出 第二行為三個數的平均值,浮點數形式輸出,小數點後保留兩位小數。輸入樣例 3 2 3...
C語言基礎
找最大最小整數 2.問題描述 編寫乙個程式,使用者輸入若干整數,試找出其中的最大數和最小數。輸入形式 使用者在第一行待輸入資料個數,在第二行輸入資料。輸出形式 程式在下一行輸出資料的最大值和最小值 樣例輸入 589 62 96 74 52 樣例輸出 96 52 樣例說明 使用者第一次輸入的為資料個數...