问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

C语言数组概念与一维数组详解

创作时间:
作者:
@小白创作中心

C语言数组概念与一维数组详解

引用
CSDN
1.
https://m.blog.csdn.net/m0_74147998/article/details/145670807

数组是C语言中非常重要的数据结构,它允许我们存储和操作一组相同类型的元素。本文将详细介绍数组的概念、一维数组的定义、数组元素的访问、数组的初始化以及几个相关的案例。

数组概念

数组是相同数据类型的有序集合。数组中的每个元素都有一个唯一的索引,用于标识其在数组中的位置。

数组的特征

  • 数组中的数据被称为数组的元素,所有元素都是同构的。
  • 数组中的元素在内存中是连续存储的。
  • 下标(索引)表示数组中元素距离第一个元素的偏移量,数组的下标从0开始。
  • 数组中元素的地址值随着下标的增大而增大。

一维数组

数组的定义

语法:

类型说明符/数据类型 数组名[数组的容量];

说明:

  • 数组的类型由其元素决定,所有元素的类型必须相同。
  • 数组名遵循标识符命名规则,不能以数字开头,只能包含数字、字母和下划线。
  • 数组容量必须是整型常量或常量表达式,不能是变量。

示例:

#define SIZE 4
int arr[SIZE]; // 符号常量
int size = 4;
int arr[size]; // 常量
int arr[4];    // 常量
int lcd[800*480]; // 常量表达式

数组元素的访问

数组元素不能一次性访问所有,只能通过下标一个一个访问。

访问方式:

数组名[下标];

示例:

int arr[10];
arr[0] = 89;
int a = arr[0];
int c = arr[9];
int b = arr[10]; // 错误,下标越界

数组的初始化

可以在定义数组的同时进行初始化。

语法:

数据类型 数组名[数据容量] = {常量1,常量2,常量3,...}

注意事项:

  • 数组可以部分初始化,未初始化的元素会被系统自动初始化为0。
  • 如果定义数组时未指定数据容量,系统会根据初始化元素的个数来决定数组容量。

示例:

int arr[10] = {11,12,13,14,15}; // 推荐写法
int arr[] = {11,12,13,14,15}; // 推荐写法

数组长度计算

可以通过以下方式计算数组的长度:

int length = sizeof(arr) / sizeof(arr[0]);

一维数组案例

斐波那契数列

#include <stdio.h>
int main(int argc,char *argv[])
{
    int i;
    int f[20] = {1,1};
    int len = sizeof(f) / sizeof(f[0]);
    for(i = 2;i < len; i++)
    {
        f[i] = f[i-2]+f[i-1];
    }
    for(i = 0; i < len; i++)
    {
        if(i % 5 == 0)
        {
            printf("\n");
        }
        printf("%8d",f[i]);
    }
    printf("\n");
    return 0;
}

计算某天是该年的第几天

#include <stdio.h>
int main(int argc,char *argv[])
{
    int t[] = {31,0,31,30,31,30,31,31,30,31,30,31};
    int year,month,day;
    printf("请输入年份、月份、天:\n");
    scanf("%d-%d-%d",&year,&month,&day);
    if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
        t[1] = 29;
    else
        t[1] = 28;
    int sum = day;
    for(int k = 0; k < month - 1; k++)
    {
        sum += t[k];
    }
    printf("%d月%d日是%d年第%d天。\n",month,day,year,sum);
    return 0;
}
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号