C程序设计:第五章详解-数组与指针
版权申诉
133 浏览量
更新于2024-07-04
收藏 314KB PDF 举报
"C语言程序设计的第六讲,主要探讨了第五章——数组与指针。本章节深入讲解了数组的定义、初始化、存储方式以及数组名的特性,并通过实例展示了如何查找一维数组中的最大值和最小值。"
在C语言中,数组是一种重要的数据结构,它允许我们存储多个相同类型的元素。数组由多个同类型的数据对象组成,这些对象在内存中是连续存储的。例如,声明一个包含10个整数的数组`int i_a[10];`,或根据常量定义数组长度,如`const int n=34; double d_a[n];`。
数组的大小是固定的,在声明时就需要指定。一旦定义,其大小无法改变。例如,在函数内部,可以声明一个基于传入参数大小的数组,如`void f(int n, int m) { int b[n]; ... }`,但请注意,这样做仅限于局部变量,且在C99标准及以上才被支持。
初始化数组时,可以使用花括号{}来设置初始值。例如,`inta[4]={1,1,2,4};` 或 `int c[]={1,2,3,4,5,6,7,8};`。不过,这样的初始化仅限于定义时,不能用在普通的赋值语句中。如果未提供足够的初始值,未指定的元素会被自动初始化为类型对应的默认值(对于整型通常是0)。错误的初始化示例,如尝试初始化超过数组大小的元素,会导致编译错误。
数组名实际上是指向数组首元素的常量指针,这意味着它不能被赋值。例如,`a`是数组`arr`的地址,`a[0]`则是数组的第一个元素。因此,`sizeof(a)`返回整个数组的大小,而`sizeof(a[0])`返回单个元素的大小。数组元素个数可以通过`sizeof(a) / sizeof(a[0])`计算得出。
在实际编程中,数组的使用非常广泛。例如,寻找数组中的最大值和最小值。以下是一个简单的示例:
```cpp
const int SIZE = 15;
int main() {
int arr[SIZE], i, high, low;
for (i = 0; i < SIZE; i++)
arr[i] = rand() % 100;
// 省略输出数组元素的部分
high = arr[0];
low = arr[0];
for (i = 1; i < SIZE; i++) {
if (arr[i] > high)
high = arr[i];
else if (arr[i] < low)
low = arr[i];
}
// 省略输出最高和最低值的部分
}
```
在这个例子中,数组`arr`首先被填充了随机数,然后通过遍历找到其中的最大值`high`和最小值`low`。
理解C语言中的数组和指针是至关重要的,因为它们是许多复杂数据结构和算法的基础,如动态数组、字符串处理、矩阵操作等。指针将在后续的章节中进一步讨论,它提供了对内存的直接访问,使得我们可以更灵活地操作数据。
2021-09-19 上传
2022-06-14 上传
2022-06-14 上传
2008-11-21 上传
2021-09-28 上传
2022-09-21 上传
matlab大师
- 粉丝: 2737
- 资源: 8万+
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍