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

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

文章目录

一、数据类型

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





一、数据类型


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


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


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



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


简单数据类型 :

基本数据类型 : C 语言中有 6 66 种基本数据类型 ;

整型 : 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


image.png


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


array 代表 数组首元素地址 ;

&array 代表 数组地址 ;


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


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

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


数组数据类型 :


定义 数组类型

定义 数组指针类型

数组类型 和 数组指针类型 的关系 :


目录
相关文章
|
5天前
|
存储 C语言
C语言中的多级指针、指针数组与数组指针
C语言中的多级指针、指针数组与数组指针
6 0
|
5天前
|
存储 编译器 C语言
C语言数组详解
C语言数组详解
11 1
|
5天前
|
存储 C语言
C语言数组指针详解与应用
C语言数组指针详解与应用
10 0
|
6天前
|
C语言
C语言刷题(数组)
C语言刷题(数组)
|
6天前
|
编译器 C语言
指针进阶(数组指针 )(C语言)
指针进阶(数组指针 )(C语言)
|
算法 编译器 程序员
C语言学习笔记—P11(数组<2>+图解+题例+三子棋游戏<初级>)
C语言学习笔记(数组<2>+图解+题例+三子棋游戏<初级>)
110 0
C语言学习笔记—P11(数组<2>+图解+题例+三子棋游戏<初级>)
|
存储 C语言
C语言学习笔记—P10(数组<1>+图解+题例)
C语言学习笔记(数组<1>+图解+题例)
109 0
C语言学习笔记—P10(数组<1>+图解+题例)
|
C语言
C语言学习笔记——数组(二)
C语言学习笔记——数组
143 0
C语言学习笔记——数组(二)
|
C语言
C语言学习笔记——数组(一)
C语言学习笔记——数组
148 0
C语言学习笔记——数组(一)
|
机器学习/深度学习 C语言 编译器
【C语言】学习笔记4——数组
我直接把控制语句和循环跳过了。大致看了一下,讲得太繁琐了。这部分在后面用C写数据结构就可以练得很熟了。 1. 数组: 由数据类型相同得一系列元素组成。内存上是一片连续得存储单元。 2. 声明 int nums[5] // 内含5个int类型元素的数组 float ...
978 0