C 语言数组

C 语言数组

在本教程中,您将学习如何使用数组。您将借助示例学习如何声明,初始化和访问数组的元素。

数组是可以存储多个值的变量。例如,如果要存储100个整数,则可以为其创建一个数组。

示例

c 复制代码
cint data[100];

如何声明数组?

c 复制代码
dataType arrayName[arraySize];

例如,

c 复制代码
float mark[5];c

在这里,我们声明了一个浮点类型的数组mark。其大小为5。意味着,它可以容纳5个浮点值。

需要注意的是,数组的大小和类型一旦声明就不能更改

访问数组元素

您可以按索引访问数组的元素。

假设您如上所述声明了一个数组mark。第一个元素是mark0,第二个元素是mark1,依此类推。

说明
  • 数组的第一个索引为0,而不是1。在此示例中,数组为第mark0一个元素。
  • 如果数组的大小为,则要n访问最后一个元素,n-1则使用索引。在这个实例中mark4
  • 假设的起始地址mark02120d 。然后,的地址mark1将为2124d 。同样,地址mark2将是2128d 等。
    这是因为a的大小float是4个字节。

如何初始化数组?

在声明期间可以初始化数组。例如,

示例

c 复制代码
int mark[5] = {19, 10, 8, 17, 9};

您也可以像这样初始化一个数组。

示例

c 复制代码
int mark[] = {19, 10, 8, 17, 9};

在这里,我们没有指定大小。但是,当我们使用5个元素进行初始化时,编译器知道其大小为5。

这里,

c 复制代码
mark[0] 等于 19
mark[1] 等于 10
mark[2] 等于 8
mark[3] 等于 17
mark[4] 等于 9

更改数组元素的值

示例

c 复制代码
int mark[5] = {19, 10, 8, 17, 9}

//使第三个元素的值为-1
mark[2] = -1;

//使第五个元素的值为0
mark[4] = 0;

输入和输出数组元素

这是如何从用户那里获取输入并将其存储在数组元素中的方法。

c 复制代码
// 获取输入并将其存储在第三个元素中
scanf("%d", &mark[2]);

// 把输入存储在第i个元素中
scanf("%d", &mark[i-1]);

这是打印数组单个元素的方法。

示例

c 复制代码
//打印数组的第一个元素
printf("%d", mark[0]);

//打印数组的第三个元素
printf("%d", mark[2]);

//打印数组的第i个元素
printf("%d", mark[i-1]);

示例1:数组输入/输出

c 复制代码
//程序从用户那里获取5个值并将它们存储在数组中
//打印存储在数组中的元素
#include <stdio.h>

int main() {
  int values[5];

  printf("输入5个整数: ");

  //接受输入并将其存储在数组中
  for(int i = 0; i < 5; ++i) {
     scanf("%d", &values[i]);
  }

  printf("显示整数: ");

  //打印数组的元素
  for(int i = 0; i < 5; ++i) {
     printf("%d\n", values[i]);
  }
  return 0;
}

输出结果

c 复制代码
输入5个整数: 1
-3
34
0
3
显示整数: 1
-3
34
0
3

在这里,我们使用了一个 for循环,来从用户那里获取5个输入的数值,并将它们存储在一个数组中。然后,使用另一个 for循环,这些元素显示在屏幕上。

示例2:计算平均值

示例

c 复制代码
//程序使用数组查找n个数字的平均值
#include <stdio.h>
int main()
{
     int marks[10], i, n, sum = 0, average;

     printf("输入元素数量: ");
     scanf("%d", &n);

     for(i=0; i<n; ++i)
     {
          printf("输入数字%d: ",i+1);
          scanf("%d", &marks[i]);
          
          //将用户输入的整数添加到sum变量
          sum += marks[i];
     }

     average = sum/n;
     printf("平均值 = %d", average);

     return 0;
}

输出结果

c 复制代码
输入元素数量: 5
输入数字1: 45
输入数字2: 35
输入数字3: 38
输入数字4: 31
输入数字5: 49
平均值 = 39

在这里,我们计算了用户输入的n个数字的平均值。

访问元素超出范围!

假设您声明了一个由10个元素组成的数组。比方说

c 复制代码
int testArray[10];

您可以访问数组元素 testArray0 - testArray9

现在,假设您尝试访问testArray12。该元素不可用。这可能会导致意外输出(抛出错误)。

因此,永远不要访问数组边界之外的元素。

多维数组

在本教程中,您了解了数组。这些数组称为一维数组。

在下一个教程中,您将学习[多维数组(数组的数组)。

相关推荐
麻瓜老宋7 小时前
AI开发C语言应用按步走,表达式计算器calc的第二十二步,分号赋值链式修复、TOKEN_ASSIGN
c语言·开发语言·atomcode
SilentSlot11 小时前
【C/C++】手写 DPDK 协议栈(十一):基于 PPS、SYN 比例和源 IP 熵的 DDoS 检测
c语言·c++·tcp/ip
冻柠檬飞冰走茶13 小时前
PTA基础编程题目集 7-15 计算圆周率(C语言实现)
c语言·开发语言·数据结构·算法
Rabitebla16 小时前
C++ 内存管理全面复习:从内存分布到 operator new/delete
java·c语言·开发语言·c++·算法·leetcode
SilentSlot16 小时前
【C/C++】手写 DPDK 协议栈(八):用五元组 Hash 加速连接定位
c语言·c++·哈希算法
Tisfy16 小时前
LeetCode 3517.最小回文排列 I:排序(Python两行版) / 计数(O(n)时间+O(C)空间+字符串原地修改)
c语言·python·leetcode·字符串·排序·计数排序·回文
菜鸟的升级路17 小时前
C语言栈刷题:LeetCode 20 有效的括号完整解题笔记
c语言·笔记·leetcode
冻柠檬飞冰走茶17 小时前
PTA基础编程题目集 7-13 日K蜡烛图(C语言实现)
c语言·开发语言·数据结构·算法
SilentSlot19 小时前
【C/C++】手写 DPDK 协议栈(十二):TCP 并发与自实现 epoll 的就绪事件分发
c语言·c++·tcp/ip
SilentSlot19 小时前
【C/C++】手写 DPDK 协议栈(六):TCP 三次握手、状态机与数据回显
c语言·c++·tcp/ip