C语言学习:数组的运用与注意事项

需积分: 9 7 下载量 3 浏览量 更新于2024-09-09 收藏 16KB TXT 举报
"C语言学习笔记,讲解了数组的使用及相关编程技巧" 在这篇传智博客的C语言学习笔记中,主要介绍了数组这一重要的数据结构及其使用方法。数组是一种在内存中连续存储相同类型数据的集合,它允许我们一次性定义多个同类型变量。以下是笔记中的关键知识点: 1. **数组定义**: - 数组定义的基本形式是`类型 名称[大小]`,例如`int array[10];`声明了一个包含10个整数的数组。 - 数组的大小必须是一个常量表达式,在定义时已知。 2. **数组元素访问**: - 数组元素通过下标访问,下标从0开始,如`array[0]`到`array[9]`,共10个元素。 - 下标越界(如`array[10]`)会导致未定义行为,因此在使用时要注意边界。 3. **一维与多维数组**: - 示例中的`array`是一维数组,只有一个维度的索引。 - 多维数组可以有多个维度,如`int arr[3][4];`是3行4列的二维数组。 4. **数组与变量的区别**: - 数组名是一个指向其首元素的常量指针,不能被重新赋值。 - 同一个作用域内,数组名是唯一的,不能与其他变量或数组同名。 5. **数组的动态定义**: - 在C语言中,通常数组大小需要在定义时确定,但可以使用`malloc()`或`calloc()`动态分配数组空间,例如`int *arr = (int*)malloc(10 * sizeof(int));`。 6. **数组的大小与元素个数**: - 使用`sizeof()`运算符可以获取数组的总大小(以字节为单位),例如`sizeof(array)`。 - 数组元素个数可以通过总大小除以单个元素的大小计算得出,如`n = sizeof(array) / sizeof(array[0]);`。 7. **数组越界问题**: - C编译器不会检查数组越界,这可能导致运行时错误或不可预测的行为。 - 编程时应确保对数组的访问不会超出其定义的范围。 8. **作业**: - 提供的作业要求定义一个包含10个元素的数组,并赋值1-10,然后打印数组元素。在`main2()`函数中展示了如何实现这个任务。 9. **数组名与首元素地址**: - 数组名实际上等同于首元素的地址,如`printf("a=%p,&a[0]",a,&a[0])`会输出相同的地址。 10. **运行时错误**: - 错误分为编译错误和运行时错误,编译错误在编译阶段发现,而运行时错误可能在程序运行时才显现。 通过这篇笔记的学习,读者可以掌握C语言中数组的基本概念、使用方法以及注意事项,为进一步学习更复杂的编程技巧打下基础。