c語言的數(shù)據(jù)分類
首先是針對(duì)C語言的數(shù)據(jù)類型做個(gè)整理 大致分為四個(gè)大類型
- 基本類型
- 枚舉類型
- 空類型
- 派生類型
那么根據(jù)以上四個(gè)大類型 我們來一一的做一個(gè)分站式講解
基本類型
基本類型其中大致分為兩類 整型 和 浮點(diǎn)型
整型
(我在基本類型后面都附上了字節(jié)長(zhǎng)度,這里是指在64位編譯器下的長(zhǎng)度 32位和16位暫時(shí)不附)
整型包含:
基本整型 int (4字節(jié))
短整型 short [int] (2字節(jié))
長(zhǎng)整型 long [int] (8個(gè)字節(jié))
雙長(zhǎng)整型 long long [int] (8個(gè)字節(jié))
字符型 char (1個(gè)字節(jié))
布爾型 bool (1個(gè)字節(jié)或4個(gè)字節(jié))
這里布爾型要拿出小筆畫畫重點(diǎn) :
布爾型有兩個(gè)值,而且只有兩個(gè)值 就是true或者false。
boolean 1字節(jié)或者4個(gè)字節(jié)
如果使用boolean聲明一個(gè)基本類型的變量時(shí),那么該變量占4個(gè)字節(jié),
如果使用boolean聲明一個(gè)數(shù)組類型的時(shí)候,那么每個(gè)數(shù)組的元素占一個(gè)字節(jié)。
注:整型數(shù)據(jù)可在類型符號(hào)前面加修飾符:signed(有符號(hào)整數(shù)類型)和unsigned(無符號(hào)整數(shù)類型),若不指定則默認(rèn)為“有符號(hào)類型”。
浮點(diǎn)型
浮點(diǎn)型分為兩種單精度浮點(diǎn)型和雙精度浮點(diǎn)型
- 單精度浮點(diǎn)型【 float(4個(gè)字節(jié))】
- 雙精度浮點(diǎn)型【double (8個(gè)字節(jié))】
對(duì)于查看字節(jié) 我們可以用個(gè)代碼來讓它得到展示:
首先固定的格式:
#include <id> ----->頭文件
#include <notify> ---->頭文件
using namespace std; //釋放std命名空間中的變量名,函數(shù)名以及類型名,其中std是C++標(biāo)準(zhǔn)庫(kù)的命名空間。
int main ()
{
return 0;
}
#include <cstdio>
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
short x = 5;
int a = 10;
long b = 20;
float c = 1.1;
double d = 2.2;
cout << "short占用的字節(jié)" << sizeof(x) << endl;
cout << "int占用的字節(jié)" << sizeof(a) << endl;
cout << "long占用的字節(jié)" << sizeof(b) << endl;
cout << "flaot占用的字節(jié)" << sizeof(c) << endl;
cout << "double占用的字節(jié)" << sizeof(d) << endl;
return 0;
}
得到展示的值是
float和double的精度和范圍
范圍
float和double的范圍是由指數(shù)的位數(shù)來決定。
float的指數(shù)位有8位,而double的指數(shù)位有11位,分布如下:
float:
1bit(符號(hào)位) 8bits(指數(shù)位) 23bits(尾數(shù)位)
double:
1bit(符號(hào)位) 11bits(指數(shù)位) 52bits(尾數(shù)位)
所以
float的指數(shù)范圍為-127~+128
double的指數(shù)范圍為-1023~+1024
并且指數(shù)的范圍是按照補(bǔ)碼的形式來劃分(什么是補(bǔ)碼會(huì)在后期的文章當(dāng)中關(guān)注持續(xù)每天更新)
而且其中負(fù)指數(shù)決定了浮點(diǎn)數(shù)所能表達(dá)的絕對(duì)值最小的非零數(shù);而正指數(shù)決定了浮點(diǎn)數(shù)所能表達(dá)的絕對(duì)值最大的數(shù),也即決定了浮點(diǎn)數(shù)的取值范圍。
精度
float和double的精度是由尾數(shù)的位數(shù)來決定的。浮點(diǎn)數(shù)在內(nèi)存中是按科學(xué)計(jì)數(shù)法來存儲(chǔ)的,其整數(shù)部分始終是一個(gè)隱含著的“1”,由于它是不變的,所以不能對(duì)精度造成影響。
float:2^23 = 8388608,一共七位,這意味著最多能有7位有效數(shù)字,但絕對(duì)能保證的為6位,也即float的精度為6~7位有效數(shù)字;
double:2^52 = 4503599627370496,一共16位,同理,double的精度為15~16位。(能絕對(duì)保證15位沒有問題)
枚舉類型
枚舉類型就只有枚舉類型(enum)
有一個(gè)定義格式 :
enum 枚舉名{元素1,元素2};
那么沒為什么要用枚舉?
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
就例如上面的代碼塊看起來很復(fù)雜,但是利用枚舉的方式就是:
enum DAY{MON=1,TUE,WED, THU, FRI, SAT, SUN};
是不是簡(jiǎn)單的多?
但是這里要注意:第一個(gè)枚舉成員的默認(rèn)值為整型的 0,后續(xù)枚舉成員的值在前一個(gè)成員上加 1。我們?cè)谶@個(gè)實(shí)例中把第一個(gè)枚舉成員的值定義為 1,第二個(gè)就為 2,以此類推。
空類型
空類型 即是 void類型 :常用在程序編寫中對(duì)定義函數(shù)的參數(shù)類型、返回值、函數(shù)中指針類型進(jìn)行聲明,(函數(shù)和指針也會(huì)在后期慢慢的給大家詳細(xì)講講)可以表示一種未知類型,但是不能代表一個(gè)真實(shí)的變量。
下面代碼都企圖讓void代表一個(gè)真實(shí)的變量,因此都是錯(cuò)誤的代碼:
void a; //錯(cuò)誤
??void function(void a); //錯(cuò)誤
??void function(void); //正確
void* :則為“無類型指針”,可以指向任何類型的數(shù)據(jù)。(無類型指針我后面會(huì)說)
派生類型
在說派生類型前我們需要了解什么是面向?qū)ο?/strong>(劃重點(diǎn)后面要考)
面向?qū)ο蟮闹饕卣鳎豪^承、封裝和多態(tài)。
繼承(派生):使一個(gè)類從現(xiàn)有的一個(gè)類中派生,而不用重新定義新類。
實(shí)質(zhì)是用已有的數(shù)據(jù)類型創(chuàng)建新的數(shù)據(jù)類型,并保留已有的數(shù)據(jù)類型的特點(diǎn)。以舊類為基礎(chǔ)創(chuàng)建新類,新類包含舊類的的數(shù)據(jù)成員和成員函數(shù),并可以在新類中添加新的數(shù)據(jù)成員和成員函數(shù)。舊類被稱為父類或基類,新類被稱為派生類或子類。
以上代碼塊只是舉例說明!
派生的一般表達(dá)形式
class 派生類名稱標(biāo)識(shí)符 : [繼承方式] 基類名稱標(biāo)識(shí)符
// [繼承方式],繼承的基類成員的方式:public、protected、private;:是繼承關(guān)系運(yùn)算符。
{
[訪問控制修飾符:] //派生類的訪問控制類型:public、protected、private
[成員聲明列表] //派生類新增成員列表,繼承來的成員不用重新列舉
};
繼承方式有3種,其決定3種派生類型:
分別為
public (公有型派生)
protected(私有型派生)
private(保護(hù)型派生)
訪問控制修飾符也是此3種類型。(后期會(huì)針對(duì)3種派生類型做詳細(xì)分析)
注
在代碼命名的時(shí)候注意保留關(guān)鍵字 那么哪些是保留關(guān)鍵字呢 我們來看個(gè)表
不可出現(xiàn)于表中相同的命名!
今天的內(nèi)容就到這里 明天會(huì)給大家開始說說數(shù)據(jù)于運(yùn)算,每天更新,每天進(jìn)步 。文章來源:http://www.zghlxwxcb.cn/news/detail-743772.html
“出發(fā)吧!偉大的程序員啊”文章來源地址http://www.zghlxwxcb.cn/news/detail-743772.html
到了這里,關(guān)于C語言 Number 1 基本數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!