真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

初識(shí)C語言(2)幾種數(shù)據(jù)類型及其創(chuàng)建與初始化-創(chuàng)新互聯(lián)

?目錄

前言

秀山土家族苗族ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

本節(jié)提要

一、幾種類型的對(duì)比

二、有關(guān)這幾種類型的補(bǔ)充

1.unsigned

2.char

3.short,int,long,long double

三、有關(guān)變量創(chuàng)建及賦值的一些問題

1.變量創(chuàng)建的格式

2.變量名

3.變量類型

4.常變量

1.const

2.define

5.不同類型的互相賦值問題

三、推薦練習(xí)

四、下節(jié)預(yù)告


前言

本系列的意義在于兩點(diǎn),一則是作為本人(一個(gè)編程初學(xué)者)的學(xué)習(xí)筆記記錄,二則希望能對(duì)后來者提供一些幫助,因?yàn)楸救艘矠樾率?難免有些錯(cuò)誤或講述不清之處,懇請(qǐng)大家指出或提出建議,本人也會(huì)虛心修改。

本系列的目標(biāo)是幫助一個(gè)編程初學(xué)者快速擁有簡(jiǎn)單的編程能力,能夠自主完成洛谷入門級(jí)和部分普及級(jí)題目。


本節(jié)提要

本節(jié)我將提供介紹幾種C語言中的數(shù)據(jù)類型并簡(jiǎn)單介紹他們的創(chuàng)建與初始化,他們主要包括字符型,整形家族,浮點(diǎn)型(又稱實(shí)型)家族


一、幾種類型的對(duì)比

類型及

其關(guān)鍵字

所占大?。▎挝唬鹤止?jié))

取值范圍輸入輸出格式符創(chuàng)建樣例
字符型

char

(字符型)

1-2^7~2^7-1%cchar a='a';
整形家族

int

(整形)

4-2^31~2^31-1%dint a=100;

short int

(短整型)

(int可省略)

2-2^15~2^15-1%hdshort a=100;

long int

(長(zhǎng)整型)

(int可省略)

8

-2^63?~ 2^63?-1

%ldlong a=100;

long long int

(超長(zhǎng)整形)

(int可省略)

8-2^63?~ 2^63?-1%lldlong long a=100;
浮點(diǎn)型家族

float

(單精度浮點(diǎn)型)

4-3.4E+38 ~ 3.4E+38%ffloat a=1.0;

double

(雙精度浮點(diǎn)型)

8-1.7E+308 ~1.7E+308?%lfdouble a=1.0;

long double

(長(zhǎng)精度浮點(diǎn)類型)

16-1.2E+4932 ~1.2E+4932%llflong double a=1.0;

補(bǔ)充:計(jì)算機(jī)中存儲(chǔ)單位的大小及轉(zhuǎn)換

?bit(比特)

?1 byte(字節(jié))=8 bit

?1 kb(字節(jié))=1024?byte

?1 mb(兆字節(jié))=1024 kb

?1 gb(吉字節(jié))=1024 mb

?1 tb(吉字節(jié))=1024?gb

?1 pb(拍字節(jié))=1024?tb

二、有關(guān)這幾種類型的補(bǔ)充 1.unsigned

簡(jiǎn)單來說在以上的關(guān)鍵字(浮點(diǎn)型家族除外)前加上unsigned可使他們變?yōu)橄鄳?yīng)的無符號(hào)型,即他們不再能表達(dá)負(fù)值,其本質(zhì)是將數(shù)字的二進(jìn)制源碼(有關(guān)問題將在后面稱述)的符號(hào)位視為一般位,所以在賦值時(shí)我們需注意是否有將有符號(hào)型賦值與無符號(hào)型(或相反)的情況,以及他們的輸入輸出格式符(無符號(hào)型的,只需將有符號(hào)型的中的d換為u即可,如int 的為%d,對(duì)應(yīng)的unsigned int 為%u)

#includeint main()
{
	int n = -100;
	unsigned long int res = n;
	printf("%ld\n", res);
	printf("%lu\n", res);
	return 0;
}

經(jīng)過了上面的闡述,請(qǐng)問上面的程序段打印的結(jié)果是否相同呢?

答案是

至于為什么第二個(gè)打印的結(jié)果為4294967196,這就涉及到二進(jìn)制源碼的問題了,此處我們暫且按下不表,我們將會(huì)在之后的內(nèi)容中學(xué)習(xí)到它

注:浮點(diǎn)數(shù)是不能用 unsigned來規(guī)范的。unsigned 的意思就是把內(nèi)存中的數(shù)據(jù)第一位也用來表示數(shù)據(jù),而不用于表示符號(hào)位。而浮點(diǎn)數(shù)規(guī)定內(nèi)存中數(shù)據(jù)的第一位必須是符號(hào)位。因此兩者之間是互相矛盾的,這也就是為什么浮點(diǎn)數(shù)不會(huì)有unsigned類型。

2.char

在上面的類型中,我們規(guī)定,如果不標(biāo)明unsigned,那么默認(rèn)它是一個(gè)有符號(hào)類型,但char型不一樣,char在標(biāo)準(zhǔn)中不指定為signed或unsigned,它具體是有符號(hào)型,還是無符號(hào)型,將由編譯器決定。

3.short,int,long,long double

這里提到的幾種類型實(shí)際上我們并沒有具體規(guī)定他所占的空間與大小到底是多少

如:

  • short 規(guī)定至少占用 2 個(gè)字節(jié)。
  • int 建議為一個(gè)機(jī)器字長(zhǎng)。32 位環(huán)境下機(jī)器字長(zhǎng)為 4 字節(jié),64 位環(huán)境下機(jī)器字長(zhǎng)為 8 字節(jié)。
  • 規(guī)定short 的長(zhǎng)度不能大于 int,long 的長(zhǎng)度不能小于 int

這就意味著,short 并不一定真的”短“,long 也并不一定真的”長(zhǎng)“,它們有可能和 int 占用相同的字節(jié)數(shù)。也就是說他們的大小及數(shù)據(jù)范圍將由操作系統(tǒng)和編譯器決定,而并非是一個(gè)具體值,如果我們想知道在當(dāng)前機(jī)器和編譯器下,他們的大小和數(shù)據(jù)范圍,我們可以利用 sizeof 關(guān)鍵字去進(jìn)行測(cè)算。


三、有關(guān)變量創(chuàng)建及賦值的一些問題 1.變量創(chuàng)建的格式

我們創(chuàng)建變量時(shí)使用如下格式 變量類型 變量名,并且為了保險(xiǎn)起見,我們一般在定義時(shí)就會(huì)對(duì)變量進(jìn)行初始化,如 float F=1.99; 這里我們定義了一個(gè)float類型的名字為F,值為1.99的變量。當(dāng)然,如果有需要,我們也可不對(duì)變量進(jìn)行初始化,如 float F;

2.變量名

定義變量時(shí),變量名可以隨我們心意地命名(只要不與C語言中的關(guān)鍵字重名),但必須是字母(字母區(qū)分大小寫)、數(shù)字和下劃線的組合。同時(shí)變量名的開頭不能是數(shù)字,可以由字母或下劃線開頭。但是為了更規(guī)范,更通用的命名,一般來說我們會(huì)盡量遵守以下的規(guī)則(但并非是強(qiáng)制要求)

  1. 隨便打開一個(gè)頭文件就會(huì)看到,它里面的變量名、宏名、函數(shù)名大多是以下劃線開始的。所以為了避免與系統(tǒng)定義的名字產(chǎn)生沖突,在編程的時(shí)候,除非要求這么定義,否則盡量都不要使用下劃線作為一個(gè)變量名的開頭。
  2. 最好采用英文單詞或其組合,不要使用拼音。同時(shí)程序中的英文單詞一般不要太復(fù)雜,用詞應(yīng)當(dāng)準(zhǔn)確。
  3. C 是一種簡(jiǎn)潔的語言, 命名也應(yīng)該是簡(jiǎn)潔的。例如變量名MaxVal 就比MaxValueUntilOverflow 好用。標(biāo)識(shí)符的長(zhǎng)度一般不要過長(zhǎng),較長(zhǎng)的單詞可通過去掉“元音”形成縮寫。

3.變量類型

變量分為全局變量(定義在{ }外部,對(duì)全局生效的變量)和局部變量(定義在{ }內(nèi)部,對(duì)該{ }內(nèi)生效的變量),當(dāng)局部變量和全局變量名字沖突時(shí),遵循局部?jī)?yōu)先,但不建議寫成一樣的

注1:當(dāng)全局變量不進(jìn)行初始化時(shí),我們規(guī)定它為0,而局部變量不進(jìn)行初始化時(shí),我們會(huì)賦予其一個(gè)隨機(jī)值

注2:同一工程下的全局變量可跨源文件使用,但使用時(shí)需用extern聲明

4.常變量 1.const

使用const修飾的變量,將變?yōu)橐粋€(gè)常變量(但它仍是一個(gè)變量),使其在全局生效,并且不可被再次修改。常用于:1.定義一個(gè)常用常數(shù)為全局變量,便于之后程序的修改(可以一次修改所有使用了這個(gè)常數(shù)的地方,而無需一處一處的尋找和修改);2.對(duì)循環(huán)內(nèi)部定義的局部變量,使其在每一次循環(huán)時(shí),都能接著上次循環(huán)而改變(其實(shí)這個(gè)也不常用(笑))

如:const int a=1e5+10;

2.define

用define定義的常變量類似于定義某值為全局常變量(當(dāng)然也可定義于大括號(hào)內(nèi),作為局部變量)

如:#define a=10;

5.不同類型的互相賦值問題

我們當(dāng)然可以把不同類型的變量互相賦值,也可以使用不同的輸出格式符打印,正如上面我把int 賦與unsigned long int 類型,并使用了不同的輸入輸出格式符打印一樣,但需要注意精度問題

#includeint main()
{
	float a = -100.9;
	int b = a;
	unsigned c = -b;
	printf("%d\n", b);
	printf("%u\n", c);
	return 0;
}

我們來猜測(cè)一下上面這個(gè)代碼段輸出的答案到底是多少呢?

答案是

你做對(duì)了嗎?如果對(duì)了,那證明你已經(jīng)基本理解了這里的內(nèi)容了,如果沒有,沒關(guān)系下面我們一起來看看吧

首先,我們定義了float型的變量a為-100.9,然后我們將其賦值與int類型的b,因?yàn)橛?jì)算機(jī)為向下取整,所以b被賦值為-100

然后我們將b賦值與unsigned int 類型的c,所以它以該類型打印出來,就為-100的絕對(duì)值,即為100


三、推薦練習(xí)

洛谷:這一節(jié)中我們講述的內(nèi)容偏向理論,本人沒有想到?jīng)]有什么特別適合新手嘗試的題目,故而我提供一個(gè)編程作業(yè)思路給大家,請(qǐng)大家編程創(chuàng)建多個(gè)不同類型的變量,然后將他們互相賦值并輸出,熟悉不同類型間的區(qū)別


四、下節(jié)預(yù)告

下一節(jié)中,我將會(huì)向大家介紹C語言中的轉(zhuǎn)義字符是什么,并講解常用的幾種轉(zhuǎn)義字符。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)站標(biāo)題:初識(shí)C語言(2)幾種數(shù)據(jù)類型及其創(chuàng)建與初始化-創(chuàng)新互聯(lián)
分享路徑:http://weahome.cn/article/csoddo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部