4、變數的定義與初始化
看下面例子。
//#include
void main( ) }
程式輸出什麼結果?
答:將輸出97,98,…,122
在c++中,任何乙個變數在被引用之前必須被定義。c++中變數可以在程式中隨時定義,不必集中在程式之前。
定義格式:
〈型別〉〈變數名錶〉;
當有多個變數時,其間用逗號隔開。例如:
int i,j,k;
float x,y,z;
char c1,c2,c3;
注意:在同乙個記憶體塊中不允許定義同名變數,即不允許重複定義乙個變數。
變數在定義時可直接給變數乙個初始值,稱為變數初始化。變數初始化也可放在需要的時候進行。變數被初始化後其值將儲存到被改變為止。變數定義以後,如果沒有被初始化,並不意味著這個變數中沒值,該變數中要麼是預設值,要麼是無效值。在後面將要講到,對外部和靜態變數定義後其預設值對int型的為0,對浮點型的為0.0;對char型為空。而其他內部變數未初始化時其值是無效的,這是因為該變數所在位址中的內容是先前保留下來的無意義的值。
在定義變數時可一次初始化多個變數。例如:
float x,y=3.14,z=0.0;
char ch1=』a』; ch2=』/n』;
這裡,y,z,ch1,ch2在定義的同時就進行了初始化。而x只是做了變數說明並沒有賦初值。
2.6 typedef
typedef用來為已存在的型別名提供乙個同義詞。格式:
typedef ;
2.7 簡單i/o操作
在程式中經常需要將資料輸出到螢幕、印表機、儲存器等。也經常需要從鍵盤接受使用者輸入的資料,這種輸入輸出操作統稱為i/o操作。在這裡將簡單介紹鍵盤和螢幕操作。
在c++中把資料的i/o稱為資料流,並提供了強大的「流」處理功能,以控制資料從乙個位置流向另外乙個位置。相對於記憶體,當資料從記憶體流向螢幕、印表機或硬碟時稱為輸出;當資料從鍵盤、硬碟流向記憶體時稱為輸入。c++用兩個物件cin和cout實現標準的輸入輸出。
cin:它是istream類的物件,用來處理標準輸入,即鍵盤輸入。
cout:它是ostream類的物件,用來處理標準輸出,即螢幕輸出。
在c++中用istream類和ostream類的派生類iostream控制輸入輸出,並提供了輸入和輸出操作符。>稱為抽取操作符,其作用是從cin流中提取字元。
在此簡單介紹一下螢幕的輸入輸出方法。
1、使用提取符實現鍵盤輸入
格式如下:
cin >> >> …;
這裡抽取符可連續使用,後跟表示式,表示式通常是獲得輸入值的變數或物件。例如:int a,b;
cin >>a >>b;
要求從鍵盤上輸入兩個int型數。在鍵盤上輸入
43 20
這時,變數a獲取值為43,變數b獲取值20。
說明:從鍵盤上輸入數值時兩個值之間一般用空格分隔,也可以用tab鍵或換行符。
2、使用插入操作符和cout實現螢幕輸出
格式如下:
cout …;
與》一樣,插入操作符可連續使用,後跟表示式,在輸出時系統自動計算表示式的值並插入到資料流中。例如:
cout are you !」
看下面例子:
void main( )
執行該程式輸出如下結果:
the length of 「this is a string」 is : 16
the size of 「this is a string」 is : 17
3、控制輸出格式
許多情況下,都需要控制輸出結果的表現形式。如輸出寬度、輸出精度、輸出格式等。c++的iomanip.h中定義了許多控制符,這些控制符可以直接插入到流中,控制資料的輸出格式。控制符有兩種:控制常量和控制函式,控制常量定義在iostream.h中,控制函式定義在iomanip.h中。常用控制符見下表。
控制符
描述 備註
dec
hex
oct按10進製輸出
按16進製制輸出
按8進製輸出
常量控制符
在iostream.h中
setfill(c)
setprecision(n)
setw(n)
setiosflags(ios::fixed)
setiosflags(ios::scientific)
setiosflags(ios::left)
setiosflags(ios::right)
setiosflags(ios::skipws)
setiosflags(ios::uppercase)
setiosflags(ios::lowercase)
設填充字元為c
設定顯示小數精度為n位
設域寬為n個子符
小數方式表示
指數表示
左對齊
右對齊
忽略前導空白(用於輸入)
16進製制數大寫輸出
16進製制數小寫輸出
函式控制符
在iomainip.h中
注意:除了setw(n)控制符之外,其他控制符對後面的所有輸出起控制作用,直到改變輸出格式為止。
例1、輸出8進製和16進製制數
常量dec、hex和oct用來控制必須按10進製、16進製制或8進製形式輸出。
void main( )
結果為:
decimal:1234
hexadecimal:4d2 173c44
octal:2322 5636104
注意:由於這三個識別符號已經被定義為系統常量,注意不能在定義為其他變數使用。
例2、設定值的輸出寬度
函式setw(n)用來控制輸出寬度,如果資料實際寬度大於設定寬度,將按實際寬讀輸出;如果設定寬度大於實際輸出寬度,資料輸出時將在前面補相應數量的空格。另外,該控制符只對一次輸出起作用。
//#include
//#include
void main( )
輸出結果為:
1234_ _ _1522756
例3、設定填充字元
setfill(c)函式用來設定填充的字元,預設情況下為空格。
//#include
//#include
void main( )
輸出$$1234$1522756
例4、設定對齊格式
函式setiosflags(ios::left)和setiosflags(ios::right)用來控制輸出左右對齊格式。當資料實際寬度小於輸出寬度時該控制才起作用。預設情況下資料輸出是右對齊。
//#include
//#include
void main( )
輸出1234$$1522756$
例5、控制浮點數顯示
函式setprecision(n)可用來控制輸出流顯示浮點數的數字個數(整數部分加小數部分)。c++預設的流輸出數值的有效位是6。當小數截短顯示時,進行四捨五入處理。
函式setflags(ios::fixed)用來控制符點數是按純小數方式顯示,函式setflags(ios::scientific)用來控制符點數是按科學記數法方式顯示。系統預設為純小數方式輸出。
函式setiosflags(ios::showpoint) 用來強制顯示小數點和符號。
//#include
//#include
void main( )
輸出結果為:
2.85714 (預設6位,整數部分加小數部分)
2.857143e+000 (預設6位,指小數部分)
2.857142857142857e+000 (double型最多15位)
2.85714285714286 (double型有效位最多15位,整數部分加小數部分)
3 ( 無小數字)
3 (預設0不輸出)
3.00000 (強制輸出0)
C語言知識複習
printf的格式控制符 d 十進位制有符號整數 ld 長整形 u 十進位制無符號整數 f 浮點數 s 字串 c 單個字元 p 指標的值 e 指數形式的浮點數 x,x 無符號以十六進製制表示的整數 0 無符號以八進位制表示的整數 g 自動選擇合適的表示法 1 可以在 和字母之間插進數字表示最大場寬,...
c 小知識點5 0
61.delete表示式只能應用在 用new表示式產生的指標上,如上例.62.例如.需要的時候才分配乙個字串,但又不知道該字串長度時才分配與釋放的物件被稱為動態分配物件.動態分配的物件被分配在程式的空閒儲存區的可用記憶體池中.程式設計師用new來建立動態分配物件,用delete來結束時物件的生命週期...
C 知識點複習
static static變數只能初始化一次 include include using namespace std void fun int i int main 輸出為 0 00因為static變數只初始化一次,static int value i這句話只執行一次,也就是fun 0 的時候執行。...