文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 278
阅读 2
收藏 0
点赞 0
评论 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
大学计算机课程学习路线(左飞老师)

如果你是一个计算机相关专业大学低年级学生,那么这篇文章就是为你写的。 我之前曾经发过一篇博文《大学计算机专业那些课》来谈论大学中各门课程的意义和重要性。那是针对更宽泛的范围来说的...

杨军军
2011/04/03
0
0
想做程序员,C语言可以开发哪些项目?

(1)C语言是面向过程的,而C++是面向对象的 (2)C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运...

小辰GG
2017/12/21
0
0
Python函数中eval函数知识点

python 的集合类型和 其他语言类似, 是一个无序不重复元素集,我在之前学过的其他的语言好像没有见过这个类型,基本功能包括关系测试和消除重复元素.集合对象还支持union(联合), intersection...

yunyingoldboy
06/26
0
0
关东升的《从零开始学Swift》3月9日已经上架

大家一直期盼的《从零开始学Swift》于3月9日已经上架,它是关东升老师历时8个月的呕心沥血所编著,全书600多页,此本书基于Swift 2.x,通过大量案例全面介绍苹果平台的应用开发。全书共分5 部...

智捷课堂
2016/03/11
43
0
云计算培训学院,云计算Python自动化运维开发实战

都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊、批量执行某个操作啊、写写监控脚本什么的。后...

长沙千锋
05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
12
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
1
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
今天
3
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部