文章目录

  • 一、数据类型
  • 二、数据类型本质 ( 数组地址 | 数组首元素地址 )

一、数据类型


" 数据类型 " 是 数据的抽象 ;

相同类型的数据 , 表示形式相同 , 存储格式相同 , 相关操作相同 ;

C 语言程序中的 数据 , 必定属于某种 数据类型 ;

​数据类型分为 简单数据类型 和 复杂数据类型 ;​

  • ​简单数据类型 :​
  • ​​基本数据类型 :​​ C 语言中有 6 6 6 种基本数据类型 ;
  • ​整型 :​ short , int ;
  • ​浮点型 :​ float 单精度浮点 , double 双精度浮点 ;
  • ​字符型 :​ char ;
  • ​空类型 :​ void ;
  • ​​用户自定义类型 :​​ enum 枚举类型
  • ​复杂数据类型 :​
  • ​​结构类型 :​​
  • ​数组类型 :​ [] ;
  • ​结构体类型 :​ struct ;
  • ​联合体类型 :​ union ;
  • ​类 :​ class ;
  • ​​指针类型 :​​ * ;

二、数据类型本质 ( 数组地址 | 数组首元素地址 )


​数据类型 本质 :​ 固定大小 内存块 的 别名 ;

如下代码 :

int a;

编译器 一旦看到 int 类型变量 , 就知道需要分配 4 字节内存 , 用于存储该变量 ;

int array[10];

告诉 C 语言编译器 分配 40 直接内存 ;

打印上述数组 array​ , array + 1​ , &array​ , &array + 1 的值 ,

#include <stdio.h>

int main()
{
int array[10];

printf("array = %d, array + 1 = %d, &array = %d, &array + 1 = %d",
array,
array + 1,
&array,
&array + 1);

return 0;
}

​执行结果 :​

array = 6422184, array + 1 = 6422188, &array = 6422184, &array + 1 = 6422224

【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )_数组

发现 array​ 与 &array 的值相等 , 但是这二者所代表的数据类型不同 ;

  • array 代表 数组首元素地址 ;
  • &array 代表 数组地址 ;

array + 1​ 与 &array + 1 的值相差 40 40 40 字节 , 也就是整个数组的大小 ;

  • array + 1 表示 数组首元素地址 加上一个 数组元素 占据的内存大小 ;
  • &array + 1 表示 数组地址 加上一整个 数组 占据的内存大小 ;

​数组数据类型 :​

  • 定义 数组类型
  • 定义 数组指针类型
  • 数组类型 和 数组指针类型 的关系 :