数组

本文详细介绍了C语言中的一维数组,包括定义、下标、初始化和使用循环进行操作。数组的下标从0开始,可以结合循环进行元素的赋值、读取和计算。此外,还讲解了如何通过宏定义灵活处理数组长度,以及数组的初始化方法,如完全赋值和不完全赋值。最后提到了使用`sizeof`获取数组大小的知识。

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

数组

一维数组

数组就是包含多个数据的数据结构,而且数组内的每个元素的数据类型一致

数组的定义,例如

int a[10]
//这个就是定义了一个含有十个元素的数组,这十个元素的类型都是int类型
//定义数组的时候要把类型和长度都定义了
 //因为我们后期数组的长度可能随时改变,我们可以用一个宏定义来解决这个改变的问题
    #define N 10
    int a[N];

一维数组的下标

值得注意的是,数组的下标都是从0开始的,就是说原先有N个元素,那么下标最多只能到N-1;

#define N 10
int a[N];
//数组a的下标范围就是0-9;

数组和循环的使用

数组和循环就像是好朋友,他们在一起真的是很合适;

不管是一维数组还是二维数组,甚至是多维数组,利用循环,我们可以对数组的元素进行操作

int i=0;
int sum=0for(i=0;i<N;i++)
{
    a[i]=0;//这个是对数组里面的内容进行清空,都赋值为0//
}
for(i=0;i<N;i++)
{
    scanf("%d",&a[i]);//这个循环可以做到对数组里面的内容输入值//
}
for(i=0;i<N;i++)
{
  sum+=a[i]//这个是对数组里面的元素进行相加//  
}
//如果是二维数组,那么就要定义两个元素来控制数组
int i,j;
int b[N][N]
for(i=0;i<N;i++)
{
    for(j=0;j<N;j++)
    {
        b[i][j]=0;//这个是对数组里面的内容都赋值为0//
    }
}
for(i=0;i<N;i++)
{
    for(j=0;j<N;j++)
    {
        scanf("%d",&b[i][j]);//这个是给数组里面的元素输入值
    }
}
for(i=0;i<N;i++)
{
    for(j=0;j<N;j++)
    {
        printf("%d\t",b[i][j]);//这个就是输出数组的内容//
    }
    printf("\n");
}
//高维数组以此类推

值得注意的是,scanf函数的时候a[i]作为一个变量,前面依然要加上&符号

数组的下标

数组的下标可以是任何整数表达式

int a[10];
int i=1,j=3;
a[i+j*10];
a[i++];
a[j++];
//都是合法的,我甚至可以像下面这样
a[i,j];//这个含义就是一个括号的运算,这个式子表达的意思就是a[j];
//虽然上面的都是合法的,但是我们尽量少用,因为有时候会带来副作用//

数组的初始化

数组的初始化有很多表达方式

1,int a[5]={1,2,3,4,5};

2,int a[5]={1,2} 有完全赋值和不完全赋值,没有赋值到的元素就是默认为0

我们还可以不给出数组的长度,就是

int a[]={1,2,3,4,5}

那么显而易见,这个数组就是a[5];

对数组使用sizeof

一个数组使用sizeof,结果就是数组的长度*类型所占的字节数

int a[10];//有的计算机里面int是2字节,有的是4字节,所以这个可能是20,也可能是40
char a[100]//这个结果是100
   double a[10];//结果是80
float a[30];//结果是120
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值