Chinaunix首页 | 论坛 | 博客
  • 博客访问: 251566
  • 博文数量: 88
  • 博客积分: 1429
  • 博客等级:
  • 技术积分: 523
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-18 15:31
文章分类

全部博文(88)

文章存档

2017年(2)

2016年(24)

2013年(1)

2012年(24)

2011年(15)

2010年(22)

我的朋友

分类: C/C++

2010-11-09 20:49:41

结构体和数组初始化的两种方法:
1)定义时直接初始化。
2)用for循环初始化。
注意:数组名和结构体名都是地址常量,不能做l-value.

#include <stdio.h>

#define ROW 3 //行数
#define COL 3 //列数

/* arraytable1和arraytable2中的{}可要可不要 */
// 全局二维数组

int arraytable1[ROW][COL] =
{
    1, 2, 3,
    4, 5, 6,
    7, 8, 9, //最后一逗号可要也要以不要
};

int arraytable2[ROW][COL] =
{
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9},
};

void main()
{
    int i, j;
    int a[ROW][COL];
    // 定义时初始化

    int b[ROW][COL] = {1};       //ROW可以省去,未赋到值的元素为0
    int c[ROW][COL] = {1, 2, 3}; //ROW可以省去,未赋到值的元素为0
    int d[ROW][COL] = {{1},{2}};
    for(i=0; i<ROW; i++) //用for初始化 
        for(j=0; j<COL; j++)
            a[i][j] = arraytable1[i][j];
}


//结构体初始化
typedef struct
{
    int a;
    int b;
    int c;
}stest;
// 用来初始化的全局stest结构体数组  
stest structtable[] =
{
    1, 2, 3,
    4, 5, 6,
    7, 8, 9,
};

void main()
{
    int i;
    stest st[3];
    stest ss[3] = {1};    //未赋到值的元素为0
    stest sa[3] =
    {
        1, 2, 3,
        4, 5, 6,
        7, 8, 9,                 
    };
    // 用for初始化
    for (i=0; i<3; i++)
    {
        st[i] = structtable[i];
    }
}


阅读(1281) | 评论(0) | 转发(0) |
0

上一篇:指针常量和常量指针

下一篇: linux/err.h

给主人留下些什么吧!~~