1:(整數)short,int,long型別
short:至少16位
int:至少與short一樣長
long:至少32位,且至少與int一樣長
下來看下程式輸出的結果:
#include
#include
#include
using namespace std;
int main()
輸出為:
int is 4 bytes
short is 2 bytes
long is 4 bytes
int 的最大值:2147483647
short的最大值:32767
long的最大值:2147483647
int的最小值:-2147483648
乙個byte是8個bit
這些我都是在 windows 7 x64 旗艦版上測試的,其它的系統就沒測試了,估計也有一樣和不一樣的。
2:操作符 sizeof和標頭檔案limits
sizeof操作符指出,在使用8位位元組的系統中,int的長度為4個位元組。可以對型別名和變數名使用sizeof操作符。
如:cout<
climits的符號常量
符號常量
表示char_bit
char的位數
char_max
char的最大值
char_min
char的最小值
schar_max
signed char的最大值
schar_min
signed char的最小值
uchar_max
unsigned char的最大值
shrt_min
short的最小值
shrt_max
short的最大值
ushrt_max
unsigned short的最大值
int_max
int的最大值
int_min
int的最小值
uint_max
unsigned int的最大值
long_max
long的最大值
long_min
long的最小值
ulong_max
unsigned long的最大值
3:初始化
將宣告和賦值合併在一起:如
int a=int_max;
注:不對函式內部定義的變數初始化,該變數的值將是不確定的。這意味該變數的值將是它被建立之前,該記憶體單元儲存的值
4:無符號型別
unsigned short a;
unsigned int b;
unsigned c;
a,b,c都是int型別
看段程式:
#include
#include
using namespace std;
#define zero 0
int main()
解釋下這段程式:
short型別的a和unsigned short型別的b都取最大值,在這裡最大值是:32767。
從而都加上1,從這開始這兩個的值都變了,short型別的最大值還要再加上1,可以見得,a的值變成:-32768
unsigned short型別的b值變成:32768
下來同時設定a和b的值為:0,再減去1,從而得出的結果為
short型別的a最後值為:-1
unsigned short型別的b最後值為:65535
可以看出,整形變數的行為就是里程表。如果超出了限制,其值為另一端的值。
如下圖:典型的整形溢位行為
5:選擇整形型別
什麼情況是用什麼型別,這可真是個麻煩啊。
一般基本都是int型別,而超出int型別範圍的用long型別。
所以要看具體情況而定用什麼型別,現在電腦基本都是x86或者x64 的電腦,不存在16位的電腦,所以隨便用,但也要注意點用,越節約越好。
6:整形常量
如: int a=42;
int b=0x42;
int c=042;
cout<
cout<
cout<
1:第一位為1-9,則基數為10(10進製)
2:第一位為0,第二位為1-7,則基數為8(8進製)
3:前兩位為0x,或者0x,則基數為16(16進製制),對於16進製制數:a-f,a-f表示了16進製制位,對應與10-15.0xf為15,ox45為165(10個16加5個1)。
cout預設是以10進製顯示的。
顯示上面的列子為:
42 66
34 7:如何確定常量的型別
如把1900確定什麼型別呢,答案馬上揭曉。(如果使用了特殊的字尾表示特定的型別,或者值太大,不能儲存為int型別。)否則都是i儲存nt型別。
數字後面跟上字母,字母表示的是數字的型別。
整數後面跟的是l或者l表示該整數型別為:long,u或者u字尾表示unsigned int常量。ul(可以表示任何一種順序,大小寫都可以)表示unsigned long型別的常量(例如:22022lu或者22022ul都被儲存為unsigned long型別)。
接下來考察的是數字的長度。
對與不帶字尾的10進製的數字來說:2000表示int型別,40000表示long型別,3000000000表示unsigned long型別。
對於不帶字尾的16進製制的數字來說:0x9c40(40000)表示unsigned int型別。這表示的記憶體的位址
因此:unsigned int 比long更為合適的表示16位位址
8:char型別:字元和小數
char a;
cout<
cin>>a;
cout<
假如輸入的是:m
輸出的是m呢,還是77,顯而易見的是m。而在記憶體中的值是:77
char a;
cout<
cin>>a;
int b=a;
cout<
b=b+1;
cout<
cout<
cout.put(a);
輸入:m
輸出:77
78 m
所以就cout.put();就很關鍵了。
9:cout.put()函式
cout.put();可以代替《操作符
它提供了一種顯示字元的方法。不用在轉換ascii碼了!
10:char常量
11:通用字元名
12:signed char和unsigned char
14:const 限定符
一點一滴(五)
架構 1 什麼是架構?架構就是對系統中的實體以及實體之間的關係所進行的抽象描述,是一系列的決策。架構是結構和願景。系統架構是概念的體現,是對物 資訊的功能與形式元素之間的對應情況所做的分配,是對元素之間的關係以及元素同周邊環境之間的關係所做的定義。做好架構是個複雜的任務,也是個很大的話題,本篇就不做...
一點一滴學習Sybase
1,獲取當前時間的函式 select getdate 2,從資料字典中獲取資料庫物件 select from sysobjects 4,獲取 刪除 sybase連線,刪除正在連線的使用者.當查詢結束後連線並沒有關閉,建立表的時候出現lock問題,當把connection drop掉之後正常 sele...
學習C 的一點一滴(7)
region if的練級之路 練級 比較三個數的大小 使用者輸入三個數 我們把它轉換成double形式 請輸入第乙個數 double n1 convert.todouble console.readline 請輸入第二個數 double n2 convert.todouble console.rea...