文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 278
阅读 2
收藏 0

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;
}

 
 
 
 
 

 

 

  

2. 结构中的结构:
#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;
}

 
 
 
 
 

 

 

  

3. 链表(结构中的指针):
#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;
}

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/11/28/1343309.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
各程序语言之-数据亲和力

我略精简了一下文章 :) 语言的数据亲和力 Javascript、Perl、Python、Ruby、Groovy等越来越多地被熟悉和使用 C++、C#、Java等主流语言也在不断地融入函数式和动态性特征 程序员的百宝箱中可供...

ddatsh
2011/06/28
281
0
关东升的《从零开始学Swift》第2版已经出版

关东升的《从零开始学Swift》第2版已经出版 大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版《从零开始学Swift》 《从零开始学Swift》将在《...

tony关东升
2016/02/24
0
0
冲击百万年薪:11 大编程语言薪资排行榜,你还不来学Python吗

编程言语有许多,但并非每一种的需求或薪酬都相同。人工智能和机器学习走热,让 Python 从众多编程言语中锋芒毕露。本文将综合各种信源,比较不同编程言语在美国市场的相关薪资水平、人气和前...

python达人
2017/12/25
0
1
[转载]各种编程语言介绍

http://www.cnpack.org/showdetail.php?id=252&lang=zh-cn 各种语言的介绍 Table of contents [showhide] 1 各种语言的介绍(第二版) 1.1 各种语言的选择 1.2 各种语言的选择 2 我为什么选择...

kajhsdjkah
2012/06/29
2.1K
0
Go语言_反射篇

这里的GO使用的版本是1.2 Go语言的基本语法的使用已经在前几篇陆陆续续学完了,下面可能想写一些Go的标准库的使用了。 先是reflect库。 reflect库的godoc在http://golang.org/pkg/reflect/ ...

王二狗子11
01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

八月新增开源项目:假装自己是图形界面的 Git 命令行工具

每月新增开源项目。顾名思义,每月更新一期。我们会从社区上个月新收录的开源项目中,挑选出有价值的、有用的、优秀的、或者好玩的开源项目来和大家分享。数量不多,但我们力求推荐的都是精品...

编辑部的故事
9分钟前
2
0
20180918 find命令与Linux文件扩展名

命令find 用来查找搜索文件。 搜索文件相关命令: which 从环境变量里的目录中去搜索 whereis(不常用) 从一个固定的库中搜索 locate(需要单独安装 yum install -y mlocate) 查询时会从/var/...

野雪球
11分钟前
0
0
一步步编写自己的PHP爬取代理IP项目(二)

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的网站有西刺代理,快代理等,这里我们拿西刺代理作为例子。 西刺代理官网: http://www.xic...

NateHuang
32分钟前
0
0
GO 数组相关操作

package mainimport("fmt""math/rand""time")func main() {//数组的几种定义方式var arr1 [3]int = [3]int{1,2,3}var arr2 = [3]int{4,5,6}arr3 := [3]string{"h", "w", ......

汤汤圆圆
58分钟前
1
0
JAVA 中interrupt、interrupted和isInterrupted的区别

首先,我们说明下三个方法的功能 interrupt() 向当前调用者线程发出中断信号 isinterrupted() 查看当前中断信号是true还是false interrupted() 是静态方法,查看返回当前中断信号并将中断信号...

我爱春天的毛毛雨
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部