学点 C 语言(26): 数据类型 - 结构的更多可能

180it 2020-03-05 AM 1651℃ 0条

学点 C 语言(26): 数据类型 - 结构的更多可能

  1. 包含数组的结构:

    include <stdio.h>

int main(void)
{

struct Rec {
    int x[3];
    int y;
} r1;

r1.x[0] = 11; r1.x[1] = 22; r1.x[2] = 33;
r1.y = 99;

printf("%d,%d,%d,%d", r1.x[0], r1.x[1], r1.x[2], r1.y);       

getchar();
return 0;

}

  1. 结构中的结构:

    include <stdio.h>

int main(void)
{

struct Rec1 {
    int x,y,z;    
};

struct Rec2 {
    int ID;
    struct Rec1 num;
} R;

R.ID = 9;
R.num.x = 1;
R.num.y = 2;
R.num.z = 3;

printf("%d,%d,%d,%d", R.ID, R.num.x, R.num.y, R.num.z);       

getchar();
return 0;

}

include <stdio.h>

int main(void)
{

struct Rec {
    int ID;
    struct {
        int x;
        int y;
        int z;    
    } num;
} R;

R.ID = 9;
R.num.x = 1;
R.num.y = 2;
R.num.z = 3;

printf("%d,%d,%d,%d", R.ID, R.num.x, R.num.y, R.num.z);       

getchar();
return 0;

}

  1. 链表(结构中的指针):

    include <stdio.h>

int main(void)
{

struct Rec {
    int x;
    int y;
    struct Rec *next;  /* 结构中的指针, 这是建立链表的基础 */
} *p=NULL, *pFirst=NULL, *pPrec=NULL;

/* 建立链表 */
int i;
for (i = 0; i < 10; i++) {
    p = (struct Rec *)malloc(sizeof(struct Rec));
    p->x = i;
    p->y = i*i;
    p->next = NULL;
    
    if (!pFirst) {
        pFirst = p;
        pPrec = p;
    } else {
        pPrec->next = p;
        pPrec = p;
    }
}

/* 遍历链表 */
p = pFirst;
while (p) {
    printf("%d, %d\n", p->x, p->y);
    p = p->next;
}

/* 释放链表 */
p = pFirst;
while (p) {
    pPrec = p;
    p = p->next;
    free(pPrec);
}     

getchar();
return 0;

}

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

学点 C 语言(26): 数据类型 - 结构的更多可能