亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C 语言数组完全指南:声明、初始化、访问与常见操作

C 语言数组完全指南

本教程通过实战示例、最佳实践与安全准则,全面讲解 C 语言数组声明、初始化、访问、修改、输入输出及越界风险。

C 语言数组完全指南:声明、初始化、访问与常见操作

C 语言数组是存储同类型多值的连续内存块。存 100 个整数:

int data[100];

声明数组

语法:

dataType arrayName[arraySize];

例:

float mark[5];

mark 可存 5 个 float。声明后大小与类型固定。


访问元素

数组下标从 0 开始。大小 n 的数组,最后元素为 array[n-1]。例:

mark[0] // 首元素
mark[4] // 尾元素(大小 5)
C 语言数组完全指南:声明、初始化、访问与常见操作

关键点:


初始化数组

声明时初始化:

int mark[5] = {19, 10, 8, 17, 9};

或让编译器推导大小:

int mark[] = {19, 10, 8, 17, 9};

结果:

mark[0] = 19
mark[1] = 10
mark[2] = 8
mark[3] = 17
mark[4] = 9
C 语言数组完全指南:声明、初始化、访问与常见操作

修改元素

int mark[5] = {19, 10, 8, 17, 9};
mark[2] = -1; // 第三个元素
mark[4] = 0;  // 第五个元素

输入与输出

读入数组元素:

scanf("%d", &mark[2]); // 第三个元素
scanf("%d", &mark[i-1]); // 第 i 个元素(1 基)

打印元素:

printf("%d", mark[0]); // 首个
printf("%d", mark[2]); // 第三个
printf("%d", mark[i-1]); // 第 i 个

示例 1:数组输入输出

#include <stdio.h>
int main() {
    int values[5];
    printf("Enter 5 integers: ");
    for (int i = 0; i < 5; ++i) {
        scanf("%d", &values[i]);
    }
    printf("Displaying integers:\n");
    for (int i = 0; i < 5; ++i) {
        printf("%d\n", values[i]);
    }
    return 0;
}

输出

Enter 5 integers: 1 -3 34 0 3
Displaying integers:
1
-3
34
0
3

示例 2:计算平均值

#include <stdio.h>
int main() {
    int marks[10], n, sum = 0;
    printf("Enter number of elements: ");
    scanf("%d", &n);
    for (int i = 0; i < n; ++i) {
        printf("Enter number%d: ", i + 1);
        scanf("%d", &marks[i]);
        sum += marks[i];
    }
    int average = sum / n;
    printf("Average = %d", average);
    return 0;
}

输出

Enter n: 5
Enter number1: 45
Enter number2: 35
Enter number3: 38
Enter number4: 31
Enter number5: 49
Average = 39

警惕越界访问

访问 testArray[12] 而数组仅 10 个元素,导致未定义行为——崩溃、数据损坏或静默错误。访问前务必验证下标。


多维数组

以上为一维数组。下一教程将探讨多维数组(数组的数组)及其高效用法。

C语言

  1. 超导现象:零电阻、量子效应与实际应用
  2. 球栅阵列(BGA)技术全景指南:高密度PCB互连的终极方案
  3. 掌握 C# 数组:声明、初始化与核心操作完全指南
  4. 掌握 C# 锯齿数组:声明、初始化与访问完全指南
  5. C++数组传递给函数实战指南
  6. C语言中将一维与二维数组传递给函数的实战指南
  7. 深入理解C语言数组与指针的关系
  8. C++ 数组完全指南:声明、初始化、多维数组与指针技巧
  9. C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
  10. MATLAB 多维数组与特殊数组完全指南
  11. Java 数组复制技术:全面指南
  12. Java 数组教程:声明、创建、初始化与示例代码