一文彻底搞明白C语言的数组

简介: 本文详细介绍了C语言中的数组,包括定义、初始化(静态与动态)、存储方式、访问方法及常用操作,如遍历、修改元素和作为函数参数传递。数组是C语言中最基本的数据结构之一,掌握它对编程至关重要。下篇将介绍二维数组,敬请期待!

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!


1.数组

数组是 C 语言中最基本和最重要的数据结构之一,它为存储一组相同类型的数据元素提供了一种便捷的方式,并允许我们通过索引来访问这些元素。

2.数组的定义

在 C 语言中,数组的定义遵循以下基本语法:

type arrayName[arraySize];

其中:
type 是数组元素的数据类型,可以是基本数据类型(如 int、float、char 等),也可以是自定义的数据类型。
arrayName 是数组的名称,它是一个标识符,遵循 C 语言中标识符的命名规则。
arraySize 是一个正整数,表示数组中元素的数量,它必须是一个常量表达式。

例如,定义一个包含 10 个整数的一维数组可以这样写:

int myArray[10];

3.数组的初始化

数组根据初始化的形式不一样,分为2种:1.静态初始化 2.动态初始化

静态初始化

可以在声明数组的同时为其元素赋初值,这称为静态初始化。以下是一些静态初始化的例子:


// 完全初始化
int numbers[5] = {1, 2, 3, 4, 5};

// 部分初始化,未初始化的元素将被自动初始化为 0(对于静态存储持续时间)或未定义(对于自动存储持续时间)
int anotherArray[5] = {1, 2};

// 不指定数组大小,编译器会根据初始化元素的数量来确定数组大小
int autoSizedArray[] = {1, 2, 3, 4, 5};

动态初始化

在程序运行时,可以使用循环和赋值语句来动态初始化数组。例如:

#include <stdio.h>

int main() {
    int dynamicArray[5];
    for (int i = 0; i < 5; i++) {
        dynamicArray[i] = i * 2;
    }
    return 0;
}

4.数组的存储

数组在内存中是连续存储的。

对于 int myArray[10] 这样的数组,元素 myArray[0] 存储在内存的某个位置,随后的元素 myArray[1] 存储在紧挨着 myArray[0] 的下一个位置,依此类推。元素之间的地址偏移量等于元素的大小(对于 int 类型,通常为 4 字节)。

可以使用 & 运算符来查看数组元素的地址:

#include <stdio.h>

int main() {
    int array[5] = {10, 20, 30, 40, 50};
    for (int i = 0; i < 5; i++) {
        printf("Address of array[%d] is %p\n", i, (void*)&array[i]);
    }
    return 0;
}

5.数组的访问

使用索引可以访问数组中的元素,索引从 0 开始,最大索引为 arraySize - 1。例如:

#include <stdio.h>

int main() {
    int array[5] = {1, 2, 3, 4, 5};
    // 访问数组元素
    printf("The third element is %d\n", array[2]);
    return 0;
}

6.数组的常用操作

遍历数组

使用 for 循环是遍历数组的最常见方法:

#include <stdio.h>

int main() {
    int array[5] = {1, 2, 3, 4, 5};
    for (int i = 0; i < 5; i++) {
        printf("%d ", array[i]);
    }
    printf("\n");
    return 0;
}

数组元素的修改

可以使用赋值语句修改数组元素:

#include <stdio.h>

int main() {
    int array[5] = {1, 2, 3, 4, 5};
    array[2] = 10;  // 修改第三个元素
    return 0;
}

数组作为函数参数

可以将数组作为函数的参数传递,但需要注意的是,数组作为参数时,实际上传递的是数组的首地址,因此在函数中修改数组元素会影响原数组。以下是一个示例:

#include <stdio.h>

// 函数声明
void printArray(int arr[], int size);
void modifyArray(int arr[], int size);

int main() {
    int array[5] = {1, 2, 3, 4, 5};
    printArray(array, 5);
    modifyArray(array, 5);
    printArray(array, 5);
    return 0;
}

// 打印数组元素
void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

// 修改数组元素
void modifyArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

好啦,这篇就到这里吧,希望大家要掌握数组哈,下一篇,咱们写一下二维数组,记得一键三连哈

相关文章
|
7天前
|
云安全 人工智能 运维
阿里云联动百位企业安全专家,共识Agent防御最佳实践
当Agent成为新员工,你的安全边界在哪里?
1922 6
阿里云联动百位企业安全专家,共识Agent防御最佳实践
|
5天前
|
存储 人工智能 关系型数据库
阿里云AI产品与云产品最新组合套餐:Token Plan、AI coding及云服务器和建站等组合优惠价
阿里云推出全新“算力+模型+应用”一站式云与AI组合套餐活动,覆盖从个人开发者到中大型企业的全场景需求。核心亮点为分三档定价的Token Plan订阅服务,支持Qwen3.8-Max-Preview大模型调用,错峰时段最低可享0.2折优惠。活动同步推出AI Coding、智能体部署、云电脑托管、0代码建站等十余类场景化组合,搭配99元/年的普惠云服务器、88元/年的入门数据库等经典特惠产品,还为企业提供1V1定制化AI转型方案,大幅降低了不同用户群体拥抱AI的技术门槛与采购成本。
652 111
|
15天前
|
人工智能 JSON 安全
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
阿里云AI安全产品联动防御Fastjson攻击
2556 13
Fastjson远程代码执行漏洞,阿里云AI安全为您保驾护航
|
7天前
|
人工智能 弹性计算 数据库
阿里云优惠券种类解析:主要券种区别和适用群体及领取和使用指南
2026年阿里云构建了覆盖全用户的七类优惠券,本文逐一拆解了每类优惠券的核心规则、适用人群与使用技巧:大促限定的阶梯满减券分个人、企业双通道,最高可减800元;学生专属300元无门槛券支持全品类通用;按量付费用户可参与消费达标返券形成循环优惠;新用户有低门槛专享满减券尝鲜;老用户可领取系统自动发放的随机福利券;中大型企业迁云可申请最高100万元的专项补贴;云产品通用券还能在活动价基础上实现折上折。不同身份、不同采购场景的用户均可通过精准匹配对应优惠券,最大化享受优惠力度。
460 110
阿里云优惠券种类解析:主要券种区别和适用群体及领取和使用指南
|
13天前
|
人工智能 前端开发 Linux
Codex 桌面版安装 + CC Switch 接入第三方 API 完整教程(2026 最新)
2026最新教程:手把手教你安装Codex桌面版,通过CC Switch v3.17.0一键接入Fenno等国产API(兼容OpenAI Responses格式),跳过账号登录,完整启用代码审查、多步任务与上下文感知功能。零基础友好,全程图文实操。(239字)
1611 2
|
15天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
1426 2
|
17天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
1498 55
|
2天前
Qoder 一周年 × Qwen3.8-Max 正式上线,多重好礼限时领
8月3日,Qwen3.8-Max 正式上线Qoder,迎来Qoder一周年。新老用户可领800次免费调用,下单再赠2000次;夜间(22:00–08:00)调用5折;邀请好友双方得积分与调用额度。
246 0