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

举报
韩曙亮 发表于 2022/01/11 00:20:51 2022/01/11
【摘要】 文章目录 一、数据类型二、数据类型本质 ( 数组地址 | 数组首元素地址 ) 一、数据类型 " 数据类型 " 是 数据的抽象 ; 相同类型的数据 , 表示形式相同...





一、数据类型



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

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

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


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

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




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



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


如下代码 :

int a;

  
 
  • 1

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

int array[10];

  
 
  • 1

告诉 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;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

执行结果 :

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

  
 
  • 1

在这里插入图片描述

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

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

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

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

数组数据类型 :

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

文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。

原文链接:hanshuliang.blog.csdn.net/article/details/121412325

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。