03-資料型別

AK47YHAO發表於2024-12-05

三、資料型別

【問】為什麼寫程式碼

【答】為了解決生活中的問題。例如:購物、點餐、看電影 等

【比如】購買了一本《C語言》的書,這本書的價格66(整型),或者66.6(小數),而《C語言》書名又是字串)。

【問】那麼這些書名啊、價格啊又是如何儲存的呢?

【答】這時候,在C語言中為了能夠描述這些東西就引用了資料型別。對於小數抽象出了一種資料型別,即浮點型。對於整數抽象出來了一種資料型別,即整型。對於字元抽象出來了一種資料型別,即字元型

【問】為什麼叫浮點型呢?

【答】因為小數點可以浮動

【比如】66.6,可以表示位6.66 * 10,也可表示0.666 * 100

【問】為什麼會有這麼多的型別呢?

【答】因為生活中就有這些型別。

1、C語言中的資料型別

char 字元資料型別

short 短整型

int 整型

long 長整型

long long 更長的整型

float 單精度浮點型(精度較低)

double 雙進度浮點型(精度更高)

2、資料型別的用法

(1)字元型別(char)

【比如】有一個 字元 a ,那麼這個 **字元 a ** 怎麼儲存呢?

#define _CRT_SECURE_NO_WARNINGS 1

int main()
{
    /* ch是存放字元 a 的儲存空間 */
    char ch = 'a';		//將字元 a 放入變數 ch 的空間裡
    
    return 0;
}

(2)整型(int)

【比如】有個人有 20 歲,那麼這個 20 就是整數型別,怎麼表示呢?

#define _CRT_SECURE_NO_WARNINGS 1

int main()
{
    /* age(年齡)是存放整型 20 的儲存空間 */
    int age = 'a';		//將整型 20 放入變數 age 的空間裡

    return 0;
}

(3)短整型(short int)

short int 也可用 short 表示。

【比如】有個數字 10 歲,那麼這個 10 就是短整型(就是比 int 短的 整型),怎麼表示呢?

#define _CRT_SECURE_NO_WARNINGS 1

int main()
{
    /* num(數字)是存放短整型 10 的儲存空間 */
    int num = 'a';		//將短整型 10 放入變數 num 的空間裡

    return 0;
}

(5)單精度浮點型(float)

【比如】一個人的 體重55.5 公斤,怎麼表示呢?

#define _CRT_SECURE_NO_WARNINGS 1

int main()
{
    /* weight(體重)是存單精度浮點型 55.5 的儲存空間 */
    float weight = 55.5;		//將單精度浮點型 55.5 放入變數 weight 的空間裡

    return 0;
}

(6)雙精度浮點型(double)

double精度float精度高。

【比如】一個人的 體重55.5 公斤,怎麼表示呢?

#define _CRT_SECURE_NO_WARNINGS 1

int main()
{
    /* weight(體重)是存雙精度浮點型 55.5 的儲存空間 */
    double weight = 55.5;		//將雙精度浮點型 55.5 放入變數 weight 的空間裡

    return 0;
}

【問】資料儲存空間,那麼每一種型別空間大小是多少

3、資料型別的大小

(1)sizeof

sizeof關鍵字,也是運算子

【作用】計算型別或者變數所佔空間的大小(單位:位元組)。

(2)進位制數

進位制數的範圍
二進位制:0、1
八進位制:0、1、2、3、4、5、6、7
十進位制:0、1、2、3、4、5、6、7、8、9
十六進位制:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F

我們生活在一個十進位制的世界,即0123456789

(3)計算機中的單位

計算機只能識別二進位制的數,即位元位(bit)只能使用 01 來表示。

1.1.2.1-01電腦

(4)%d

表示按照整型的格式列印。

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	printf("%d\n", sizeof(char));			//	1(位元組)
	printf("%d\n", sizeof(short));			//	2(位元組)
	printf("%d\n", sizeof(int));			//	4(位元組)
	printf("%d\n", sizeof(long));			//	4(位元組)
	printf("%d\n", sizeof(long long));		//	8(位元組)
	printf("%d\n", sizeof(float));			//	4(位元組)
	printf("%d\n", sizeof(double));			//	8(位元組)
	printf("%d\n", sizeof(long double));	//	8(位元組)

	return 0;
}

image-20241129234400801

【注】C語言中規定: sizeof(long) >= sizeof(int) !!!

【問】為什麼C語言中的整型浮點型種類

【答】為了更好的合理利用C語言空間,提高程式碼空間利用效率

(5)%zu

列印 sizeof 返回值時輸出的是無符號整型

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	printf("%zu\n", sizeof(char));			//	1(位元組)
	printf("%zu\n", sizeof(short));			//	2(位元組)
	printf("%zu\n", sizeof(int));			//	4(位元組)
	printf("%zu\n", sizeof(long));			//	4(位元組)
	printf("%zu\n", sizeof(long long));		//	8(位元組)
	printf("%zu\n", sizeof(float));			//	4(位元組)
	printf("%zu\n", sizeof(double));		//	8(位元組)
	printf("%zu\n", sizeof(long double));	//	8(位元組)

	return 0;
}

image-20241129234435931

相關文章