news 2026/10/2 13:45:14

【C语言】整型数组(Finish)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C语言】整型数组(Finish)

分静态数组(栈)、动态数组(堆,malloc)两种。

1. 静态数组

(固定大小,编译时确定长度)

方式1:直接定义 // 定义长度为5的int数组,5个元素:a[0],a[1],a[2],a[3],a[4] int a[5]; 数组下标从0开始; a[5] 越界,不能访问。 方式2:定义同时初始化 // 全部初始化 int a[5] = {1,2,3,4,5}; // 部分初始化,没写的自动填0 int b[5] = {10,20}; // b[0]=10,b[1]=20, b[2]=b[3]=b[4]=0 // 不写长度,由初始化内容自动推断大小 int c[] = {1,3,5,7}; // 等价 int c[4] //注意:不能用变量来指定静态数组大小(标准C不支持变长数组VLA) int n = 5; int arr[n]; // 标准C错误,考试不要这么写! #define MAXN 100 int arr[MAXN];//是对的

2. 动态数组

(malloc,运行时确定大小,堆上)

#include <stdio.h> #include <stdlib.h> int main() { int n = 5; int *arr = (int *)malloc(sizeof(int) * n); // 赋值 for(int i=0; i<n; i++){ arr[i] = i; } // 打印 for(int i=0; i<n; i++){ printf("%d ", arr[i]); } free(arr); // 释放内存 arr = NULL; return 0; } /* int n = 5; int *arr = (int*)malloc(sizeof(int) * n); - sizeof(int) :一个int占的字节; sizeof(int)*n 总共需要多少字节 - 返回值是 int* 指针,把它当成数组用,可以用 arr[i] 访问 - 使用完要释放: free(arr); arr = NULL; */

考点:

1. malloc返回 void* ,C语言强制转换为 int*

2. 动态数组用完必须free,否则内存泄漏

3. 动态数组可以用变量n控制长度,这是它最大优势。

3. 举例说明

比如先序数组:

int pre[] = {1,2,4,5,3,6};

// 求数组元素个数

int n = sizeof(pre)/sizeof(pre[0]);

sizeof(pre) 是整个数组字节大小; sizeof(pre[0]) 是单个int字节,相除得到元素数量。

⚠️这个 sizeof 求长度只对静态数组有效;

如果是malloc出来的指针 int *arr , sizeof(arr) 得到的是指针大小,不能用来算数组长度!

快速对比

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 13:43:44

VS Code 插件及快捷键配置:用 TaoToken 统一 Key 打通 AI 编程工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/2 13:41:13

Mixture of Experts in Large Language Models

文章主要内容总结 本文是对混合专家(Mixture-of-Experts, MoE)架构在大型语言模型(LLM)中的全面综述,核心内容涵盖: 理论基础与发展历程:追溯MoE从早期自适应学习系统到现代大规模稀疏激活架构的演变,重点梳理2020年后GShard、Switch Transformer等里程碑模型推动MoE成…

作者头像 李华