数组

一维数组

数组是含有多个数据值的数据结构,并且每个数据值具有相同的数据类型。这些数据值称为元素。数组的元素可以是任何类型,数组的长度可用任何(整数)常量表达式(不超过10000)指定。因为程序以后改变时昆明需要调整数组的长度,所以较好的方法是用宏来定义数组的长度

数组下标

数组初始化

初始化式完全为空或比数组长是非法的,如果初始化式比数组短,那么数组中剩余的元素赋值为0;如果给定了初始化式,可用省略数组的长度

指定初始化式

指定初始化式可以使赋值更简短易读,且赋值顺序不做要求

cs 复制代码
int a[15]={[14]=48,[9]=7,[2]=9};

括号内的数字称为指示符。如果数组的长度是省略的,指示符可以是任意非负整数。

对数组使用sizeof运算符

1.计算数组长度 sizeof (a) / sizeof(a[0])

2.以下表达式可能出现警告,因为i的类型是int(有符号类型),sizeof返回的值类型为size_t(无符号类型),故可进行强制转换

cs 复制代码
for (int i =0;i< size of(a) / sizeof(a[0]);i++)
    a[i]=0;
cs 复制代码
#define SIZE ((int) (sizeof(a) / sizeof (a[0])))

for (i=0;i<SIZE;i++)
    a[i]=0;

多维数组

初始化

常量数组

无论一维数组或多维数组,都可以在声明最开始处加上const而成为常量,表明程序不会改变数组

C99中的变长数组

cs 复制代码
int i,n;
scanf ("%d",&n);
int a[n];
for (i=0;i<n ;i++)
    scanf ("%d",&a[i]);

变长数组的长度是在程序执行时计算的;主要限制是它们没有静态储存期限,另一个是它没有初始化式

相关推荐
chao18984416 小时前
基于 SPEA2 的多目标优化算法 MATLAB 实现
开发语言·算法·matlab
沪漂阿龙16 小时前
AI大模型面试题:支持向量机是什么?间隔最大化、软间隔、核函数、LinearSVC 全面拆解
人工智能·算法·支持向量机
little~钰17 小时前
倍增算法和ST表
算法
知识领航员18 小时前
蘑兔AI音乐深度实测:功能拆解、实测表现与适用场景
java·c语言·c++·人工智能·python·算法·github
薛定e的猫咪18 小时前
因果推理研究方向综述笔记
人工智能·笔记·深度学习·算法
如何原谅奋力过但无声19 小时前
【灵神高频面试题合集06-08】反转链表、快慢指针(环形链表/重排链表)、前后指针(删除链表/链表去重)
数据结构·python·算法·leetcode·链表
平行侠19 小时前
037插入排序 - 整理扑克牌的算法
数据结构·算法
ECT-OS-JiuHuaShan19 小时前
彻底定理化:从量子纠缠到量子代谢
数据库·人工智能·学习·算法·生活·量子计算
爱喝雪碧的可乐20 小时前
2026 腾讯广告算法大赛优秀方案启示:行为条件化多模态自回归生成推荐摘要
算法·数据挖掘·回归·推荐系统·推荐算法