数组和指针2

本文介绍了C语言中数组初始化的相关知识,包括部分初始化时未指定元素的默认值为0,以及C99引入的指定初始化器特性。同时强调了数组边界安全问题,提醒程序员在操作数组时注意下标的有效性,避免数组越界。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初始化列表中的项数应与数组大小一致

//some_date.c--部分初始化数组
#include <stdio.h>
#define SIZE 4
int main(void)
{
    int some_date[SIZE] = { 1492,1066 };
    int i;
    printf("%2s%14s\n", "i", "some_date[i]");
    for (i = 0; i < SIZE; i++)
        printf("%2d%14d\n", i, some_date[i]);
    return 0;
}

输出如下

如上图所示,当初始化里表中的中少于数组元素个数时,编译器会把神域的元素都初始化为0.

#include <stdio,h>
int main(void)
{
    const int days[] = { 31,28,31,30,31,30,31,31,30,31 };
    int index;
    for (index = 0; index < sizeof days / sizeof days[0]; index++)
        printf("month %2d has %d days.\n", index + 1, days[index]);
    return 0;
}

如果初始化数组是沈略方括号中的数字,编译器会根据初始化列表中的项数来确定数组的大小。

指定初始化器(C99)

z指定初始化器,利用该特性可以初始化指定的数组元素。列入,只初始化数组中的最后一个元素。

传统语法   int arr[6]={0,0,0,0,0,212}

新方法:  int arr[6]={[5]=212}

给组元素赋值

声明数组后可以借助数组小标(或索引)给数组元素赋值,例如下面元素的赋值

C不允许把数组作为一个单元赋给另一个数组,除初始化以外也不允许使用花括号的形式赋值,

数组边界:在使用数组时要防止数组下标超出边界。也就是说必须确保下标是有效值,

数组元素的编号cong0开始,最好是在声明数组时使用符号常量来表示数组的大小。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值