C程序设计:第五章详解-数组与指针
版权申诉
39 浏览量
更新于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语言中的数组和指针是至关重要的,因为它们是许多复杂数据结构和算法的基础,如动态数组、字符串处理、矩阵操作等。指针将在后续的章节中进一步讨论,它提供了对内存的直接访问,使得我们可以更灵活地操作数据。
118 浏览量
点击了解资源详情
点击了解资源详情
2022-06-14 上传
102 浏览量
129 浏览量
2021-09-20 上传
2021-09-28 上传

matlab大师
- 粉丝: 2841
最新资源
- MKL Java库中文-英文对照文档及开发资源集合
- HexGame:使用CSS技术的创新型游戏开发
- Origin服务接口组件:简化推送通知的客户端库
- Java事件处理压缩包EventTest教程
- 黑色风格的HTML界面设计案例
- 利用滚动视图分页查看本地PDF文件切片
- 易语言实现的115下载地址解析源码教程
- K9ros2: ROS2平台上的K9功能仿真与迁移
- 如何免注册使用SourceTree进行Git项目管理
- ACIG:掌握化学模拟输入的JavaScript工具
- showtracker:便捷电视节目追踪工具
- HTML5 Canvas实现饼图绘制及交互功能
- 巴西葡萄牙语信用卡取消期限计算工具-crx插件
- 掌握JavaScript:完整课程练习资料与常见问题解答
- C#实现COM口中文信息读取示例代码
- 易语言实现10进制与16进制数转换源码发布