首先讲一点点程序开发的往事(听狄泰唐老师的课根据自己的理解所描述的,只是为了方便自己理解,不一定准确):在汇编时代,c语言还没诞生的时代,我们的程序员只能用汇编语言来编程,所以在汇编语言中,是没有数据类型的概念的,那我们如何操作内存呢?方法就是利用内存的起始地址,内存的大小.然后,久而久之,在编程的过程当中,我们会经常用到比如4个字节大小的内存,2个字节大小的内存等等.所以当我们每次需要操作内存的时候都需要去知道我要操作的2个字节的内存大小的起始地址等等,这样就显得很麻烦,比较容易出错.所以当C语言诞生的时候,在C语言中就出现了数据类型的概念.这个数据类型就是将我们经常使用的内存大小起一个名字,使我们对内存的操作和使用更加方便,比如4字节的叫做int,1字节的叫做char...等等.
那么在了解了这一段简单的往事过后,对数据类型的认识应该是怎样的呢?
1:数据类型可以理解为固定内存大小的别名: int就代表1个字节,short代表2个字节,char代表1个字节.....
2:数据类型是创建变量的模子:相当于把数据类型当成模子往内存里一放,就可以根据这个数据类型得到对应大小的内存.比如说int这个模子,往内存里"一放"就可以创建一个4字节大小的变量.
1 #include <stdio.h> 2 3 int main() 4 { 5 char c = 0; 6 short s = 0; 7 int i = 0; 8 9 printf("%d,%d/n",sizeof(char),sizeof(c)); 10 printf("%d,%d/n",sizeof(short),sizeof(s)); 11 printf("%d,%d/n",sizeof(int),sizeof(i)); 12 13 return 0; 14 }
通过数据类型这个模子创建出来的,就是变量,那么变量的本质是什么?
1:变量是一段实际连续存储空间的别名.
2:程序中通过变量来申请并命名存储空间.
3:通过变量的名字可以使用存储空间.
4:变量隶属于某一种数据类型.
5:变量所在的内存大小,取决于扮靓所属的数据类型.
#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; }
时间: 2024-10-26 16:21:50