关键字的秘密
数据类型
什么是数据类型
数据类型可以理解为固定内存大小的别名;
数据类型是创建变量的,模子->花形的圆形的星形的等等;
char 1byte
short 2byte
int 4byte
内存空间
+----------+
| char c |
+----------+
| short s |
| |
+----------+
| |
| int i |
| |
| |
+----------+
变量的本质
变量也是别名;如int num告诉编译器申请int大小的内存并取名为num;
变量是一段实际连续存储空间的别名;
程序中通过变量来申请并命名存储空间
通过变量的名字可以使用存储空间;
每一个变量对应的内存空间都有一个编号即地址;
指针也是一种变量,里面存储的是一个普通变量的地址;
类型与变量的关系
#include <stdio.h>
int main() {
char c = 0;
short s = 0;
int i = 0;
printf("%d, %d\n", sizeof(char), sizeof(c)); /* 1, 1 */
/* 变量的大小与定义他的类型大小是一样的 */
/* 深刻理解数据类型与变量的关系 */
printf("%d, %d\n", sizeof(short), sizeof(s)); /* 2, 2 */
printf("%d, %d\n", sizeof(int), sizeof(i)); /* 4, 4 */
return 0;
}
打开思维导图
1.自定义类型+>typedef
2.创建变量+>type name
3.通过打印语句证明本质+>printf();
#include <stdio.h>
typedef int INT32;
typedef unsigned char BYTE;
typedef struct _demo {
short s; /* 2 */
INT32 i; /* 4 */
BYTE b1; /* 1 */
BYTE b2; /* 1 */
} DEMO;
typedef struct test {
DEMO de; /* 12 */
char c; /* 1 */
} test;
int main() {
INT32 i32;
BYTE byte;
DEMO d;
/* 4, 4 */
printf("%d, %d\n", sizeof(INT32), sizeof(i32));
/* 1, 1 */
printf("%d, %d\n", sizeof(BYTE), sizeof(byte));
/* 12, 12 */
printf("%d, %d\n", sizeof(DEMO), sizeof(d));
/* 16 */
printf("%d\n", sizeof(test));
return 0;
}
数据类型
什么是数据类型
数据类型可以理解为固定内存大小的别名;
数据类型是创建变量的,模子->花形的圆形的星形的等等;
char 1byte
short 2byte
int 4byte
内存空间
+----------+
| char c |
+----------+
| short s |
| |
+----------+
| |
| int i |
| |
| |
+----------+
变量的本质
变量也是别名;如int num告诉编译器申请int大小的内存并取名为num;
变量是一段实际连续存储空间的别名;
程序中通过变量来申请并命名存储空间
通过变量的名字可以使用存储空间;
每一个变量对应的内存空间都有一个编号即地址;
指针也是一种变量,里面存储的是一个普通变量的地址;
类型与变量的关系
#include <stdio.h>
int main() {
char c = 0;
short s = 0;
int i = 0;
printf("%d, %d\n", sizeof(char), sizeof(c)); /* 1, 1 */
/* 变量的大小与定义他的类型大小是一样的 */
/* 深刻理解数据类型与变量的关系 */
printf("%d, %d\n", sizeof(short), sizeof(s)); /* 2, 2 */
printf("%d, %d\n", sizeof(int), sizeof(i)); /* 4, 4 */
return 0;
}
打开思维导图
1.自定义类型+>typedef
2.创建变量+>type name
3.通过打印语句证明本质+>printf();
#include <stdio.h>
typedef int INT32;
typedef unsigned char BYTE;
typedef struct _demo {
short s; /* 2 */
INT32 i; /* 4 */
BYTE b1; /* 1 */
BYTE b2; /* 1 */
} DEMO;
typedef struct test {
DEMO de; /* 12 */
char c; /* 1 */
} test;
int main() {
INT32 i32;
BYTE byte;
DEMO d;
/* 4, 4 */
printf("%d, %d\n", sizeof(INT32), sizeof(i32));
/* 1, 1 */
printf("%d, %d\n", sizeof(BYTE), sizeof(byte));
/* 12, 12 */
printf("%d, %d\n", sizeof(DEMO), sizeof(d));
/* 16 */
printf("%d\n", sizeof(test));
return 0;
}