格式:
? ? ? ? 数据类型? 数组名[数组容量] = {满足数据类型要求的初始化数据};
数据类型:
? ? ? ? 明确告知当前数组存储的数据类型是哪一个类型,严格遵守数据类型一致化要求
数组名:
? ? ? ? a.数组名在一定范围具有唯一性
? ? ? ? b.数组名是一个指针变量,存储当前数组内存的首地址
? ? ? ? c.符合命名规则,要求见名知意
数组容量:
? ? ? ? 决定当前数组的容量,允许最多存储多少指定数据类型,数组容量一旦确定无法更改
? ? ? ? C89版本只支持常量形式
? ? ? ? C99以上支持变量形式
int att[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
? 需要通过数组名【有效下标】的方式操作数组中每一个下标对应的元素
【有效下标】
? ? ? ? 从 0 开始到数组容量 -1 结束
? ? ? ? 如果下标超出数组容量范围有可能导致 【段错误(核心已转储)】,一般常用非法下标 -1 表示代码中存在的问题
#include <stdio.h> int main (int argc, char *argv[]) { /* 数组格式: 数据类型? 数组名[数组容量] = {满足数据类型要求的初始化数据}; */ int arr[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10}; //取值下标五的元素 printf("arr[5]: %d\n",arr[5]); //给下标 5 的元素重新赋值 arr[5] = 200; printf("arr[5] = %d\n", arr[5]); }
结果如下:
数组和 for 循环之间的关系非常密切
for (循环条件初始化; 循环条件判断; 循环条件修改)?
{}循环条件初始化 从数组下标 0 开始
循环条件判断 限制循环变量在有效下标以内
循环条件修改 步进关系/递增关系为 1
for 循环操作数组完成赋值取值操作?
#include <stdio.h> int main(int argc, char const *argv[]) { //定义数组 int arr[10] = {0}; //循环遍历数组并赋值 for (int i = 0; i < 10; i++) { arr[i] = (i + 1) * i; } //展示数组元素 for (int i = 0; i < 10; i++) { printf ("arr[%d] %d\n", i, arr[i]); } return 0; }
结果展示
C/C++要求 , 如果数组作为函数参数,必须提供一组数据 /两个参数
? ? ? ? 1.数组本身
? ? ? ? 2.数组对应容量
代码案例:
#include <stdio.h> /* 给 int 类型数组赋值函数 @param arr 用户提供的 int 类型数组 @param capacity 用户提供数组的容量 */ void assgin_arr(int arr[], int capacity); /* 给 int 类型数组展示函数 @param arr 用户提供的 int 类型数组 @param capacity 用户提供数组的容量 */ void print_arr(int arr[], int capacity); int main(int argc, char const *argv[]) { //定义数组 int arr[10] = {0}; //调用赋值函数 assgin_arr(arr, 10); //调用展示函数 print_arr(arr,10); return 0; } void assgin_arr(int arr[], int capacity) { //循环遍历数组并赋值 for (int i = 0; i < 10; i++) { arr[i] = (i + 1) * i; } } void print_arr(int arr[], int capacity) { //展示数组元素 for (int i = 0; i < 10; i++) { printf ("arr[%d] %d\n", i, arr[i]); } }
结果展示:
1.指定元素搜索,指定下标数据获取
????????代码实现
#include <stdio.h> int main(int argc, char const *argv[]) { //定义一个数组 int arr[10] = {1, 3, 5, 7, 9, 2, 4, 5, 8, 10}; //下标位置存储变量 int index = -1; //需要查找的数值 int num = 15; for (int i = 0; i < 10; i++) { //循环遍历数组查找元素与要查找元素一样的数据 if (num == arr[i]) { //把所查找得到的数据下标给 index index = i; break; } } //判断如果 index > -1 输出下标值 //否则数组内没有该数值 if (index > -1) { printf("该数值的下标位置是: %d\n", index); } else { printf("没有该数据\n"); } return 0; }
????????今天的分享就到此结束吧!!!下次再见!