C语言数组

在C语言中,数组是一种数据结构,用于存储固定数量的同类型数据元素。数组元素可以通过索引访问,索引从0开始。下面详细介绍C语言中数组的使用方法,包括声明、初始化、访问元素、数组与指针的关系以及动态数组的使用。

1. 声明数组
数组的声明需要指定元素的类型和数组的大小。例如,声明一个整型数组,可以包含10个整数:
int numbers[10];
 

2. 初始化数组
数组可以在声明时初始化,也可以在之后初始化。初始化可以提供初始值列表。

声明时初始化:
int numbers[] = {1, 2, 3, 4, 5}; // 动态大小
int numbers[5] = {1, 2, 3, 4, 5}; // 静态大小

部分初始化:
int numbers[5] = {1, 2}; // 未初始化的元素自动设为0

3. 访问数组元素
数组元素通过索引访问,索引从0开始。
int numbers[5] = {1, 2, 3, 4, 5};
int firstElement = numbers[0]; // 访问第一个元素
int lastElement = numbers[4];  // 访问最后一个元素
 

4. 遍历数组
使用循环来遍历数组的所有元素:
for (int i = 0; i < 5; i++) {
    printf("%d ", numbers[i]);
}

5. 数组与指针
数组名实际上是一个指向数组第一个元素的指针,因此可以使用指针运算来访问数组元素。
int *ptr = numbers;
printf("%d\n", *ptr); // 输出第一个元素

6. 动态数组
使用`malloc`或`calloc`可以动态分配数组。这对于不确定数组大小的场景很有用。
int *dynamicArray;
int size;
scanf("%d", &size); // 用户输入数组大小
dynamicArray = (int *)malloc(size * sizeof(int));
 

 7. 多维数组
多维数组可以用来存储矩阵或表格数据。
int matrix[3][3] = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

示例代码
#include <stdio.h>

int main() {
    int numbers[5] = {1, 2, 3, 4, 5};
    int sum = 0;

    for (int i = 0; i < 5; i++) {
        sum += numbers[i];
    }

    printf("Sum of array elements: %d\n", sum);

    return 0;
}

拓展

1.C99引入的初始化器(indicator)允许程序员更简洁地初始化数组,特别是在数组中只有一部分元素需要特定值,而其他元素默认值已知的情况下。这种语法使用方括号`[]`来指定数组中要初始化的特定位置,后面跟着该位置的值。例如:
int a[15] = {[2] = 29, [9] = 7, [14] = 48};

这样的初始化方式不仅提高了代码的可读性,还消除了因手动填写大量默认值而导致的潜在错误。重要的是,使用指示器初始化数组时,元素的赋值顺序不再重要,这意味着可以按任意顺序指定值,编译器会自动处理正确的放置。

无论指定的顺序如何,元素a[2]会被赋值为29,a[9]为7,a[14]为48,其余元素默认为0。这对于大型数组特别有用,因为它减少了编写和维护代码的工作量,并降低了出错的可能性。

2.sizeof(a) / sizeof(a[0])  用sizeof来计算数组元素(如a[0])的大小。用数组的大小除以数组元素的大小可以得到数组的长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值