基本数据类型分析
2017-11-16 19:17
288 查看
编程时需要使用字节,为了方便引入了数据类型。
1.什么是数据类型?
数据类型可以理解为固定内存大小的别名,也是创建变量的模子。
使用内存是需要借,为了方便引入变量。
什么是变量呢?
一段连续实际存储空间的别名。
程序中通过变量来申请并命名存储空间。
通过变量的名字可以使用存储空间。
实例:
#include <stdio.h>
int main()
{
char c = 0;
short s = 0;
int i = 0;
printf("%d, %d\n", sizeof(char), sizeof(c));
printf("%d, %d\n", sizeof(short), sizeof(s));
printf("%d, %d\n", sizeof(int), sizeof(i));
return 0;
}
运行结果:
1,1
2,2
4,4
解释:
char 是一个字节的别名,所以字节数为1。变量c是char定义的,即它的模子是char,所以变量c的字节也是1。
short 是两个字节的别名,所以字节数为2。变量s是short定义的,即它的模子是short,所以变量s的字节也是2。
int 是四个字节的别名,所以字节数为4。变量i是int定义的,即它的模子是int,所以变量i的字节也是4。
实例:#include<stdio.h>
typedef int INT32;
typedef unsigned char BYTE;
typedef struct demo
{
short s;
BYTE b1;
BYTE b2;
INT32 i;
}DEMO;
int main()
{
INT32 i32;
BYTE byte;
DEMO d;
printf("%d,%d\n",sizeof(INT32),sizeof(i32));
printf("%d,%d\n",sizeof(BYTE),sizeof(byte));
printf("%d,%d\n",sizeof(DEMO),sizeof(d));
return 0;
}
运行结果:
4,4
1,1
8,8
解释:
INT32是自定义的int的别名,所以INT32占4个字节,i32是INT32定义的,即它的模子是INT32,所以i32也占4个字节。
BYTE是自定义的unsigned char的别名,所以BYTE占1个字节,byte是BYTE定义的,即它的模子是BYTE,所以byte也占1个字节。
DEMO是自定义的struct结构体,struct的字节数是1个short的字节数加上2个BYTE的字节数加上1个INT32的字节数,即为8个字节,而d是DEMO定义的,即它是由DEMO产生的,所以d也占8个字节。
扩展:strcut定义的4个域可以分开使用。
1.什么是数据类型?
数据类型可以理解为固定内存大小的别名,也是创建变量的模子。
使用内存是需要借,为了方便引入变量。
什么是变量呢?
一段连续实际存储空间的别名。
程序中通过变量来申请并命名存储空间。
通过变量的名字可以使用存储空间。
实例:
#include <stdio.h>
int main()
{
char c = 0;
short s = 0;
int i = 0;
printf("%d, %d\n", sizeof(char), sizeof(c));
printf("%d, %d\n", sizeof(short), sizeof(s));
printf("%d, %d\n", sizeof(int), sizeof(i));
return 0;
}
运行结果:
1,1
2,2
4,4
解释:
char 是一个字节的别名,所以字节数为1。变量c是char定义的,即它的模子是char,所以变量c的字节也是1。
short 是两个字节的别名,所以字节数为2。变量s是short定义的,即它的模子是short,所以变量s的字节也是2。
int 是四个字节的别名,所以字节数为4。变量i是int定义的,即它的模子是int,所以变量i的字节也是4。
实例:#include<stdio.h>
typedef int INT32;
typedef unsigned char BYTE;
typedef struct demo
{
short s;
BYTE b1;
BYTE b2;
INT32 i;
}DEMO;
int main()
{
INT32 i32;
BYTE byte;
DEMO d;
printf("%d,%d\n",sizeof(INT32),sizeof(i32));
printf("%d,%d\n",sizeof(BYTE),sizeof(byte));
printf("%d,%d\n",sizeof(DEMO),sizeof(d));
return 0;
}
运行结果:
4,4
1,1
8,8
解释:
INT32是自定义的int的别名,所以INT32占4个字节,i32是INT32定义的,即它的模子是INT32,所以i32也占4个字节。
BYTE是自定义的unsigned char的别名,所以BYTE占1个字节,byte是BYTE定义的,即它的模子是BYTE,所以byte也占1个字节。
DEMO是自定义的struct结构体,struct的字节数是1个short的字节数加上2个BYTE的字节数加上1个INT32的字节数,即为8个字节,而d是DEMO定义的,即它是由DEMO产生的,所以d也占8个字节。
扩展:strcut定义的4个域可以分开使用。
相关文章推荐
- Js从头学起(详细分析基本数据类型和引用类型的参数传递)
- c语言学习笔记(1)基本数据类型及auto,register,static分析
- float与double基本数据类型分析
- Java基本数据类型转换分析
- 基本数据类型分析
- JAVA IO分析二:字节数组流、基本数据&对象类型的数据流、打印流
- 专题一关键字的剖析----1.基本数据类型分析
- C语言学习重点总结(一)基本数据类型分析
- 基本数据类型分析
- java中的基本数据类型和引用数据类型的分析
- 基本的数据类型分析----java.lang.Number类及其子类分析
- Java中基本数据类型与引用数据类型分析
- 基本数据类型boolean的封装类型之Boolean源码分析
- JS基本数据类型和引用类型的参数传递详细分析
- Nginx源码分析--基本数据类型的别名
- C语言中基本数据类型的分析
- 内存级分析,基本数据类型,引用数据类型 比较是否相等
- OpenCv学习笔记(三)---OpenCv中基本数据类型--Point,Size,Rect,Scalar,Vec3b类类型的详细解释及其OpenCv中源代码的详细分析
- OpeCV中常用基本数据类型的定义分析之二
- 【C语言学习】01__基本数据类型分析