99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

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

?目錄

前言

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

本節(jié)提要

一、幾種類型的對比

二、有關這幾種類型的補充

1.unsigned

2.char

3.short,int,long,long double

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

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

2.變量名

3.變量類型

4.常變量

1.const

2.define

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

三、推薦練習

四、下節(jié)預告


前言

本系列的意義在于兩點,一則是作為本人(一個編程初學者)的學習筆記記錄,二則希望能對后來者提供一些幫助,因為本人也為新手,難免有些錯誤或講述不清之處,懇請大家指出或提出建議,本人也會虛心修改。

本系列的目標是幫助一個編程初學者快速擁有簡單的編程能力,能夠自主完成洛谷入門級和部分普及級題目。


本節(jié)提要

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


一、幾種類型的對比

類型及

其關鍵字

所占大小(單位:字節(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

(長整型)

(int可省略)

8

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

%ldlong a=100;

long long int

(超長整形)

(int可省略)

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

float

(單精度浮點型)

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

double

(雙精度浮點型)

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

long double

(長精度浮點類型)

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

補充:計算機中存儲單位的大小及轉換

?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

二、有關這幾種類型的補充 1.unsigned

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

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

經過了上面的闡述,請問上面的程序段打印的結果是否相同呢?

答案是

至于為什么第二個打印的結果為4294967196,這就涉及到二進制源碼的問題了,此處我們暫且按下不表,我們將會在之后的內容中學習到它

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

2.char

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

3.short,int,long,long double

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

如:

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

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


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

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

2.變量名

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

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

3.變量類型

變量分為全局變量(定義在{ }外部,對全局生效的變量)和局部變量(定義在{ }內部,對該{ }內生效的變量),當局部變量和全局變量名字沖突時,遵循局部優(yōu)先,但不建議寫成一樣的

注1:當全局變量不進行初始化時,我們規(guī)定它為0,而局部變量不進行初始化時,我們會賦予其一個隨機值

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

4.常變量 1.const

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

如:const int a=1e5+10;

2.define

用define定義的常變量類似于定義某值為全局常變量(當然也可定義于大括號內,作為局部變量)

如:#define a=10;

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

我們當然可以把不同類型的變量互相賦值,也可以使用不同的輸出格式符打印,正如上面我把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;
}

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

答案是

你做對了嗎?如果對了,那證明你已經基本理解了這里的內容了,如果沒有,沒關系下面我們一起來看看吧

首先,我們定義了float型的變量a為-100.9,然后我們將其賦值與int類型的b,因為計算機為向下取整,所以b被賦值為-100

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


三、推薦練習

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


四、下節(jié)預告

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

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

新聞名稱:初識C語言(2)幾種數據類型及其創(chuàng)建與初始化-創(chuàng)新互聯
文章地址:http://www.yijiale78.com/article10/csoddo.html

成都網站建設公司_創(chuàng)新互聯,為您提供搜索引擎優(yōu)化網站改版ChatGPT軟件開發(fā)網站設計App開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都做網站