欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

適合初學(xué)者的C語(yǔ)言數(shù)據(jù)類型的講解

 更新時(shí)間:2022年04月09日 14:54:57   作者:每天都要學(xué)一點(diǎn)哦  
在 C 語(yǔ)言中,數(shù)據(jù)類型指的是用于聲明不同類型的變量或函數(shù)的一個(gè)廣泛的系統(tǒng)。變量的類型決定了變量存儲(chǔ)占用的空間,以及如何解釋存儲(chǔ)的位模式。

之前說(shuō)過(guò)寫代碼是為了解決生活中的問(wèn)題,比如購(gòu)物。

假設(shè)我們要買一本書,它的價(jià)格是10.5,是個(gè)小數(shù),也可以是一個(gè)整數(shù)10,它的書名是鋼鐵是怎樣煉成的,是一組字符串,就像svli@gikvw這些,里面每個(gè)稱為字符。

我們要去用c語(yǔ)言來(lái)去存儲(chǔ)這些信息呢,在c語(yǔ)言里面為了能夠描述這些類型。

就把小數(shù)抽象出來(lái)一個(gè)數(shù)據(jù)類型,叫浮點(diǎn)型

把整數(shù)抽象出來(lái)一個(gè)數(shù)據(jù)類型,叫整型(就是上一個(gè)博客里面的int)

把字符抽象出來(lái)一個(gè)數(shù)據(jù)類型,就叫字符

 10.5 -  小數(shù)  -  浮點(diǎn)型
 10   -  整數(shù)  -  整型
 A    -  字符  -  字符

那么c語(yǔ)言里面抽象出來(lái)哪些數(shù)據(jù)類型呢?

char          //字符數(shù)據(jù)類型
short         //短整型
int           //整型
long          //長(zhǎng)整型
long long     //更長(zhǎng)的整型
float         //單精度浮點(diǎn)數(shù)
double        //雙精度浮點(diǎn)數(shù)
//浮點(diǎn)型  10.5
//整型    10
//字符    A

看了上面的數(shù)據(jù)類型,很容易看出來(lái)下面的關(guān)系:

請(qǐng)?zhí)砑訄D片描述

為什么叫浮點(diǎn)數(shù)?

就像66.6和6.66*10,小數(shù)點(diǎn)是可以浮動(dòng)的,所以叫浮點(diǎn)數(shù)

那么,為什么會(huì)有上面這么多的類型呢?我們就需要先回答一下下面這個(gè)問(wèn)題:

每一種類型的大小是多少?

我們等一下用代碼問(wèn)一下他們各自的大小

先了解一下新的東西

#include<stdio.h>

int main()
{
printf("%d\n",100)//
return 0;}

這個(gè)%d指的是打印(輸出)的格式,即整型,后面的100是返回值,即打印的是100,\n的意思就像enter,空行的意思,如圖:

運(yùn)行結(jié)果:

100

請(qǐng)?zhí)砑訄D片描述

現(xiàn)在來(lái)解釋一下\n的作用,這里用兩組代碼來(lái)對(duì)比一下:

第一組

#include<stdio.h>

int main()
{
printf("%d\n",100)//
printf("%d\n",100)
printf("%d\n",100)
return 0;}

運(yùn)行的結(jié)果:

100

100

100

請(qǐng)?zhí)砑訄D片描述

第二組

#include<stdio.h>

int main()
{
printf("%d",100)//
printf("%d",100)
printf("%d",100)
return 0;}

運(yùn)行的結(jié)果:

100100100

請(qǐng)?zhí)砑訄D片描述

可以看出,\n的作用就是空一行,就是平時(shí)enter的作用

接下來(lái)就是

#include<stdio.h>

int main()
{
    printf("%d ", sizeof(char));
	printf("%d ", sizeof(short));
	printf("%d ", sizeof(int));
	printf("%d ", sizeof(long));
	printf("%d ", sizeof(long long));
	printf("%d ", sizeof(float));
	printf("%d ", sizeof(double));
    return 0;
}

運(yùn)行結(jié)果:

1 2 4 4 8 4 8

(那么這些數(shù)字的含義是什么?它們又是怎么來(lái)看出所占內(nèi)存的大小呢?我們等一會(huì)兒就來(lái)解釋。)

請(qǐng)?zhí)砑訄D片描述

這里的sizeof()的作用就是返回?cái)?shù)據(jù)類型中的char在內(nèi)存中所占的大小,通俗點(diǎn)就是用它來(lái)告訴你char這個(gè)數(shù)據(jù)類型占多少內(nèi)存

不過(guò)這里用%d不太合適,在一些的編譯器里面會(huì)報(bào)警告,我們用%zu最合適,sizeof的返回值要用%zu來(lái)打印。

int main()
{
	printf("%zu\n", sizeof(char));
	printf("%zu\n", sizeof(short));
	printf("%zu\n", sizeof(int));
	printf("%zu\n", sizeof(long));
	printf("%zu\n", sizeof(long long));
	printf("%zu\n", sizeof(float));
	printf("%zu\n", sizeof(double));
	return 0;
}

結(jié)果跟上面那個(gè)圖是一樣的,運(yùn)行結(jié)果是:

1

2

4

4

8

4

8

(我里面加了\n,所以是一排一排的)

接著我們來(lái)講上面那些數(shù)字的含義,

你只看到了它們這些數(shù)字,但沒(méi)有單位,其實(shí)它們都是有單位的,這里我們就來(lái)了解一下計(jì)算機(jī)的單位:

計(jì)算機(jī)的單位從大到小就是PB,TB,GB,MB,KB,byte。就像我們平時(shí)生活中用的流量,一般開(kāi)通的套餐只到GB,所以GB,MB,KB這些我們都已經(jīng)很熟悉了,下面就是各單位間的換算

 1Pb=1024Tb                   
 1Tb=1024Gb
 1Gb=1024Mb                  
 1Mb=1024kb
 1kb=1024byte(字節(jié))  
 1byte=8bit(比特位)

看到這些,你可能對(duì)這些沒(méi)有什么概念,我們?cè)賮?lái)進(jìn)一步了解一下

我們都知道計(jì)算機(jī)使用的是二進(jìn)制語(yǔ)言,而我們生活在十進(jìn)制的世界,

來(lái)給一個(gè)空間| |,里面可以填1或0就是|1|或|0|,這就是一個(gè)bit,對(duì)應(yīng)的就是燈亮和燈滅

那么一個(gè)字節(jié)byte呢?

|1| |0| |1| |0| |0| |1| |0| |1|占了8個(gè)空間,也就是8個(gè)bit

10100101 對(duì)應(yīng)的十進(jìn)制就是 165

一個(gè)字節(jié)能儲(chǔ)存多大的數(shù)字呢?

11111111 對(duì)應(yīng)的十進(jìn)制就是255,即最多可以儲(chǔ)存2^8-1這么大的數(shù)

我們可以感受到越到后面的單位大小越龐大

解釋完計(jì)算機(jī)的單位,我們就來(lái)回到上面的1 2 4 4 8 4 8,它們的單位都是字節(jié)

char對(duì)應(yīng)1字節(jié),可以開(kāi)辟一個(gè)能儲(chǔ)存2^8-1的空間

short對(duì)應(yīng)2字節(jié),可以開(kāi)辟一個(gè)能儲(chǔ)存2^16-1的空間

int對(duì)應(yīng)4字節(jié),可以開(kāi)辟一個(gè)能儲(chǔ)存2^32-1的空間

long long對(duì)應(yīng)8字節(jié),可以開(kāi)辟一個(gè)能儲(chǔ)存2^64-1的空間

里面的float和double是來(lái)存儲(chǔ)小數(shù)的,雙精度浮點(diǎn)數(shù)比單精度浮點(diǎn)數(shù)精度要高一點(diǎn),這個(gè)在以后的博客會(huì)更加深入的去講解

但是我們看到int和long為什么都是4呢?

C語(yǔ)言規(guī)定,sizeof(long)>=sizeof(int)就行,但不會(huì)超過(guò)sizeof(long long)

那么我們回到前面提出的問(wèn)題,為什么要規(guī)定這樣的數(shù)據(jù)類型呢,答案是節(jié)省空間:

給你一個(gè)數(shù)2,你要把它存起來(lái),你用了long long這個(gè)數(shù)據(jù)類型,開(kāi)辟了能儲(chǔ)存2^64-1的空間來(lái)放這個(gè)2,是不是有點(diǎn)大材小用了,用一個(gè)char就行了,提高空間的利用率

接下來(lái)我們來(lái)解釋一下下面的代碼,來(lái)引入下一個(gè)博客講的變量和常量

#include<stdio.h>
int main()
{
int age=18;
double weight=16.5;
return 0;
}

int age=18;

向內(nèi)存申請(qǐng)一個(gè)int大小的空間,來(lái)把18這個(gè)數(shù)據(jù)放在age這個(gè)變量里面,通俗一點(diǎn)就是,int要了一個(gè)房間,起名為age(隨便起名),把18放到了里面。

double weight=16.5;

這個(gè)像上面一樣,double是數(shù)據(jù)類型,weight是個(gè)變量,16.5是個(gè)小數(shù)

這些數(shù)據(jù)類型就是來(lái)定義變量的

到此這篇關(guān)于適合初學(xué)者的C語(yǔ)言數(shù)據(jù)類型的講解的文章就介紹到這了,更多相關(guān)C語(yǔ)言 數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言文件操作大全

    C語(yǔ)言文件操作大全

    這篇文章主要介紹了C語(yǔ)言文件操作大全的相關(guān)資料,需要的朋友可以參考下
    2018-03-03
  • C語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的掃雷游戲

    C語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的掃雷游戲

    掃雷是電腦上很經(jīng)典的游戲,特意去網(wǎng)上玩了一會(huì),幾次調(diào)試之后,發(fā)現(xiàn)這個(gè)比三子棋要復(fù)雜一些,尤其是空白展開(kāi)算法上和堵截玩家有的一拼,與實(shí)際游戲差別較大,不能使用光標(biāo),下面來(lái)詳解每一步分析
    2021-10-10
  • C語(yǔ)言指針與引用的區(qū)別以及引用的三種用法案例詳解

    C語(yǔ)言指針與引用的區(qū)別以及引用的三種用法案例詳解

    這篇文章主要介紹了C語(yǔ)言指針與引用的區(qū)別以及引用的三種用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C++在成員函數(shù)中使用STL的find_if函數(shù)實(shí)例

    C++在成員函數(shù)中使用STL的find_if函數(shù)實(shí)例

    這篇文章主要介紹了C++在成員函數(shù)中使用STL的find_if函數(shù)實(shí)例,包括了STL中find_if函數(shù)的具體用法及相關(guān)的完整實(shí)例,非常具有參考借鑒價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C++ opencv實(shí)現(xiàn)的把藍(lán)底照片轉(zhuǎn)化為白底照片功能完整示例

    C++ opencv實(shí)現(xiàn)的把藍(lán)底照片轉(zhuǎn)化為白底照片功能完整示例

    這篇文章主要介紹了C++ opencv實(shí)現(xiàn)的把藍(lán)底照片轉(zhuǎn)化為白底照片功能,結(jié)合完整實(shí)例形式詳細(xì)分析了C++使用opencv模塊進(jìn)行圖片轉(zhuǎn)換操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-12-12
  • C++實(shí)現(xiàn)并行計(jì)算的兩種方式

    C++實(shí)現(xiàn)并行計(jì)算的兩種方式

    本文介紹了使用C++實(shí)現(xiàn)并行計(jì)算的兩種方式,包括OpenMP和MPI,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • 利用C語(yǔ)言編寫“剪刀石頭布”小游戲

    利用C語(yǔ)言編寫“剪刀石頭布”小游戲

    這篇文章主要給大家介紹了關(guān)于如何利用C語(yǔ)言編寫“剪刀石頭布”小游戲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C語(yǔ)言中變量與其內(nèi)存地址對(duì)應(yīng)的入門知識(shí)簡(jiǎn)單講解

    C語(yǔ)言中變量與其內(nèi)存地址對(duì)應(yīng)的入門知識(shí)簡(jiǎn)單講解

    這篇文章主要介紹了C語(yǔ)言中變量與其內(nèi)存地址對(duì)應(yīng)的入門知識(shí)簡(jiǎn)單講解,同時(shí)這也是掌握指針部分知識(shí)的基礎(chǔ),需要的朋友可以參考下
    2015-12-12
  • C++ 微信多開(kāi)的實(shí)現(xiàn)

    C++ 微信多開(kāi)的實(shí)現(xiàn)

    本文主要介紹了C++ 微信多開(kāi)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Windows進(jìn)程崩潰問(wèn)題的定位方法

    Windows進(jìn)程崩潰問(wèn)題的定位方法

    這篇文章主要介紹了Windows進(jìn)程崩潰問(wèn)題的定位方法,本文使用nstd工具進(jìn)行進(jìn)程崩潰時(shí)內(nèi)存和堆棧轉(zhuǎn)儲(chǔ)的方法查明問(wèn)題所在,需要的朋友可以參考下
    2015-04-04

最新評(píng)論