【C 语言】数组 ( 数组本质 | 数组长度定义 | 数组初始化 | 编译时初始化 | 显式初始化 - 重置内存 )

简介: 【C 语言】数组 ( 数组本质 | 数组长度定义 | 数组初始化 | 编译时初始化 | 显式初始化 - 重置内存 )

文章目录

一、数组本质

二、数组长度定义

三、数组初始化

1、编译时初始化

2、显式初始化 ( 重置内存 )





一、数组本质


数组本质 :


类型角度 : 从 数组元素 类型角度分析 , 数组是 相同类型 变量的 有序集合 ;

内存角度 : 从 内存角度 分析 , 数组 是 一块连续的 内存空间 ;

数组变量 占用的 内存大小 , 就是 数组本身的内存大小 ; 指针变量 占用的 内存大小 只有 4 44 字节 ;






二、数组长度定义


数组长度定义 :


显示指定数组长度 : 数组定义时 , 在 [] 中显示指定数组长度 ;

int array[3];


隐式指定数组长度 : 数组定义时 , 在 [] 中不指定数组长度 , 在后面的初始化的数组值中 , 初始化的元素个数就是数组的长度 ;

int array[] = {1, 2, 3};






三、数组初始化



1、编译时初始化


下面的操作 , 在编译时 , 就确定了 数组 初始化值 ;



隐式指定长度 , 顺便初始化 , 数组长度 3 33 , 初始化 3 33 个数组元素 ;


int array[] = {1, 2, 3};



显示指定长度 , 数组中有 3 33 个元素 , 为 3 33 个元素都指定初始值 ;


int array[3] = {1, 2, 3}



显示指定长度 , 数组中有 3 33 个元素 , 仅为第一个数组元素指定了 1 初始值 , 第 2 , 3 2,32,3 个元素默认为 0 值 ;


int array[3] = {1}



显示指定长度 , 数组中有 3 33 个元素 , 3 33 个元素 , 都默认指定为 0 值 ;


int array[3] = {0}



2、显式初始化 ( 重置内存 )


使用 memset 函数 , 显示初始化 数组 内存空间 ;


int array[3] = {0};
memset(array, 0, sizeof(array));


目录
相关文章
|
2月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
13天前
|
存储 C语言
C语言如何使用结构体和指针来操作动态分配的内存
在C语言中,通过定义结构体并使用指向该结构体的指针,可以对动态分配的内存进行操作。首先利用 `malloc` 或 `calloc` 分配内存,然后通过指针访问和修改结构体成员,最后用 `free` 释放内存,实现资源的有效管理。
62 12
|
5天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
19 1
|
10天前
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
2月前
|
存储 自然语言处理 编译器
C语言编译和链接
C语言编译和链接
C语言编译和链接
|
2月前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
126 21
|
2月前
|
Rust 安全 Java
内存数组越界
【10月更文挑战第14天】
32 1
|
2月前
|
存储 C语言
C语言:一维数组的不初始化、部分初始化、完全初始化的不同点
C语言中一维数组的初始化有三种情况:不初始化时,数组元素的值是随机的;部分初始化时,未指定的元素会被自动赋值为0;完全初始化时,所有元素都被赋予了初始值。
|
2月前
|
自然语言处理 编译器 Linux
C语言中抽象的编译和链接原理
C语言中抽象的编译和链接原理
22 1
|
2月前
|
存储 程序员 编译器
C语言——动态内存管理与内存操作函数
C语言——动态内存管理与内存操作函数