c语言数组赋值

一、数组定义原则:

长度是常量,赋值用大括号括起来。

例:

int data[5] = {5, 2, 4, 0, 3};

如果用变量:

int n=5;

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

gcc报错:

error: variable-sized object may not be initialized

先追加一个经典的例子:

#include <stdio.h>
#include <stdlib.h>

void func()
{
    int i = 0;
    int a[5]={
        [0] = 5,
        [1] = 6,
        [4] = 10,
    };

    for(i=0; i<5;i++){
        printf("a[%d]:= %d \n", i, a[i]);

    }
}


int main(int argc, char *argv[])
    {
        func();
        return 0;
    }
~     

和枚举相似的赋值逻辑, 数组赋值是可以跳跃的.

 

二、结构体数组:

 

#include <stdio.h>
#include <stdlib.h>

typedef struct{
    int a;
    int array[2];
}ARRAY_STRU;

typedef enum index{
    E0,
    E1,
    E2,
}ENUM_INDEX;

void test(){
    int n=5;
//int a[n] = { 1,2,3,4,5 };
    int a[5]= {5, 2, 4,};

    for(int i=0; i< 5; i++){
        printf("a[%d]:= %d", i, a[i]);
    }
    printf("\n");

    return;
}

void senior_test(){
    int i=0;

    ARRAY_STRU mygroup[3]={
        [E0]={1,{1,2}},
        [E2]={1,{1,2}},
    };

    for(int i=0;i<3; i++){
        if(mygroup[i].a){
            printf("the %dth data is not null\n", i);
            printf("mygroup[%d].a:=%d \n", i,mygroup[i].a);
            printf("mygroup[%d].array:= %d %d \n", i,mygroup[i].array[0], mygroup[i].array[1]);
        }
    }
}

int main(int argc, char* argv[])
{
    test();
    senior_test();
    return 0;
}

 

 

 

 

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值