【C语言进阶深度学习记录】一 数据类型的本质与变量的本质
生活随笔
收集整理的這篇文章主要介紹了
【C语言进阶深度学习记录】一 数据类型的本质与变量的本质
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天學習C語言中的數據類型的本質與變量的本質
文章目錄
- 1 什么是數據類型
- 2 變量的本質
- 3 數據類型與變量的關系
- 4 自定義數據類型與創建變量
- 5 總結
1 什么是數據類型
- 數據類型可以理解為固定內存大小的別名
- 數據類型是創建變量的模子
如同下面的圖示,各個數據類型是代表了某一個固定大小的內存,數據類型是這塊內存的別名。
然后,當我們要創建一個變量時,就使用上述的基本數據類型為模子,產生一個新的變量,如下圖所示:
這些新的變量,是根據基本數據類型這個模子,來刻畫變量所占用的內存空間的大小。
2 變量的本質
變量的本質是什么?
- 變量是一段實際連續存儲空間的別名,注意與基本數據類型的不同,基本數據類型是一段連續存儲空間的別名,但是它不是任何一個實際的存儲空間,它相當于一種規則。
- 程序中通過變量來申請并命名存儲空間,
- 申請存儲空間后,使用變量的名字可以使用該存儲空間
如下圖所示,即,i,j,k為普通的變量(在這里是int類型的變量),p也是一個變量,但是它是指針變量(指針后面會深度學習)
3 數據類型與變量的關系
-
上面的學習中發現,變量可以看成是數據類型的一種具體化。變量所對應的數據類型,它們兩個所占用存儲空間的字節數是相等的。具體看下面的例子:
-
1-1.c
編譯運行程序:
- gcc 1-1.c
- ./a.out
運行結果為:
4 自定義數據類型與創建變量
我們還可以自定義數據類型,然后使用自定義的數據類型來創建變量。如下代碼:
1-2.c
#include <stdio.h>typedef int INT32; typedef unsigned char BYTE; typedef struct _tag_ts {BYTE b1;BYTE b2;short s;INT32 i; } TS;int main() {INT32 i32;BYTE b;TS ts;printf("%d, %d\n", sizeof(INT32), sizeof(i32));printf("%d, %d\n", sizeof(BYTE), sizeof(b));printf("%d, %d\n", sizeof(TS), sizeof(ts));return 0; }- 編譯運行的結果為:
5 總結
- 數據類型的本質是一個模子
- 數據類型代表需要占用內存的大小
- 變量的本質是一段內存的別名
- 變量隸屬于某一種數據類型
- 變量所在的內存的大小取決于其所屬的數據類型的大小
總結
以上是生活随笔為你收集整理的【C语言进阶深度学习记录】一 数据类型的本质与变量的本质的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 思科为计算机配置ip命令,cisco路由
- 下一篇: dlib人脸检测功能介绍