【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )
2023-06-13 09:17:59 时间
文章目录
一、数据类型
" 数据类型 " 是 数据的抽象 ;
相同类型的数据 , 表示形式相同 , 存储格式相同 , 相关操作相同 ;
C 语言程序中的 数据 , 必定属于某种 数据类型 ;
数据类型分为 简单数据类型 和 复杂数据类型 ;
- 简单数据类型 :
- 基本数据类型 : C 语言中有
种基本数据类型 ;
- 整型 : 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
发现 array
与 &array
的值相等 , 但是这二者所代表的数据类型不同 ;
array
代表 数组首元素地址 ;&array
代表 数组地址 ;
array + 1
与 &array + 1
的值相差
字节 , 也就是整个数组的大小 ;
array + 1
表示 数组首元素地址 加上一个 数组元素 占据的内存大小 ;&array + 1
表示 数组地址 加上一整个 数组 占据的内存大小 ;
数组数据类型 :
- 定义 数组类型
- 定义 数组指针类型
- 数组类型 和 数组指针类型 的关系 :
相关文章
- 打印机smtp服务器地址还未配置_打印机如何添加邮箱地址
- SSM+MySQL+JSP教务管理系统设计与实现(附源码下载地址)
- 前端容器化第三弹 - vue3 项目容器化 - 通过 meta 注入后端地址
- AutoCAD2011软件下载地址及安装教程--autocad软件所有版本
- 【C 语言】内存四区原理 ( 常量区示例 | 不同函数返回的相同字符串的指针地址相同 )
- 【C 语言】指针数据类型 ( 不允许向 NULL 地址写入数据 | 不允许不断地改变指针指向 | 字面量存放位置 )
- 【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )
- mysql编译安装下载地址(官网)详解数据库
- java通用URL接口地址调用方式GET和POST方式详解架构师
- 设置Linux服务器IP地址设置:步步深入(linux服务器ip地址)
- 器地址探索Linux系统查看VPN服务器地址的方法(linux查看vpn服务)
- 上海Oracle办公室:追求最佳效率的地址(上海oracle办公地址)
- Linux系统如何获取IPV6地址(linux获取ipv6)
- MySQL数据库连接:探索地址之间的联系(mysql数据库连接地址)
- 掌握Redis地址简单步骤教程(如何获取redis地址)
- 哨兵Redis实现IP地址动态变更(哨兵redis ip地址)
- 在ASP中用组件检测当前网卡地址的代码