1.用typedef声明一个短语代替冗长的struct成员声明

int main(void)
{ typedef struct Hores Hores;
struct Hores
{
int age;
int height;
char name[];
char father[];
char mother[];
}; Hores groups[];
}

2.成员之间的复制是按值传递的,并不是按引用传递

#include <stdio.h>
#include <string.h>
#include <stdarg.h> int main(void)
{ typedef struct Hores Hores;
struct Hores
{
int age;
int height;
char name[];
char father[];
char mother[];
}; Hores groups[]; strcpy(groups[].name, "charleed"); groups[] = groups[]; printf("%d\n", sizeof(groups)); printf("%s\n", groups[].name);
printf("%s\n", groups[].name);
strcpy(groups[].name, "alex");
printf("%s\n", groups[].name);
printf("%s\n", groups[].name); return ;
}

输出:

204

charleed

charleed

charleed

alex

3.访问结构成员有两种运算符:

一个是“点运算符”,点运算符的左操作数一般是一个左值(也可以不是左值,但值必须是一个结构类型,参考左值一文的示例.5,或《C语言核心技术》第5章:结构和联合的成员);

另一个是“箭头运算符”,箭头运算符的左操作数必须是一个指针;

4.结构指针访问成员属性语法

printf("The name is %s\n", (*phorse).name);

为什么不是

printf("The name is %s\n", (*phorse.name));

因为成员选择运算符(句点)的优先级高于取消引用指针运算符*。这个操作还有另一种方法,更容易理解。将上面的语句改写为:

printf("The name is %s\n", phorse->name);

5.结构成员必须都是完整类型,例如下面这个例子,如果成员是一个数组,而它不指定长度,就无法通过编译:

struct frame_1 {
char name[];
};

不过有一个例外,就是C99允许:如果结构包含多个成员,那么最后一个成员允许为不完整类型的:

struct frame_1 {
int index;
char name[];
}

以上声明是合法的;

6.结构的成员可以包含一个还没有经过声明的结构指针,这种未经显式声明的结构指针被归类为不完整类型:

struct frame_1 {
struct frame_2 *ptr_frame_2;
} item_1;

以上示例struct frame_2是一个未被声明的结构,它在这里被称为不完整类型;

[C]struct结构化数据的一些要点的更多相关文章

  1. [Python]ctypes+struct实现类c的结构化数据串行处理

    1. 用C/C++实现的结构化数据处理 在涉及到比较底层的通信协议开发过程中, 往往需要开发语言能够有效的表达和处理所定义的通信协议的数据结构. 在这方面是C/C++语言是具有天然优势的: 通过str ...

  2. Spark SQL - 对大规模的结构化数据进行批处理和流式处理

    Spark SQL - 对大规模的结构化数据进行批处理和流式处理 大体翻译自:https://jaceklaskowski.gitbooks.io/mastering-apache-spark/con ...

  3. MySQL 5.7:非结构化数据存储的新选择

    本文转载自:http://www.innomysql.net/article/23959.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 工作10余年,没有一个版本能像MySQL ...

  4. WordPress插件--WP BaiDu Submit结构化数据插件又快又全的向百度提交网页

    一.WP BaiDu Submit 简介 WP BaiDu Submit帮助具有百度站长平台链接提交权限的用户自动提交最新文章,以保证新链接可以及时被百度收录. 安装WP BaiDu Submit后, ...

  5. 利用Gson和SharePreference存储结构化数据

    问题的导入 Android互联网产品通常会有很多的结构化数据需要保存,比如对于登录这个流程,通常会保存诸如username.profile_pic.access_token等等之类的数据,这些数据可以 ...

  6. 最近打算体验一下discuz,有不错的结构化数据插件

    提交sitemap是每位站长必做的事情,但是提交到哪里,能不能提交又是另外一回事.国内的话百度是大伙都会盯的蛋糕,BD站长工具也会去注册的,可有些账号sitemap模块一直不能用,或许是等级不够,就像 ...

  7. seo之google rich-snippets丰富网页摘要结构化数据(微数据)实例代码

    seo之google rich-snippets丰富网页摘要结构化数据(微数据)实例代码 网页摘要是搜索引擎搜索结果下的几行字,用户能通过网页摘要迅速了解到网页的大概内容,传统的摘要是纯文字摘要,而结 ...

  8. 【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验

    [阿里云产品公测]结构化数据服务OTS之JavaSDK初体验 作者:阿里云用户蓝色之鹰 一.OTS简单介绍 OTS 是构建在阿里云飞天分布式系统之上的NoSQL数据库服务,提供海量结构化数据的存储和实 ...

  9. 详解Google-ProtoBuf中结构化数据的编码

    本文的主要内容是google protobuf中序列化数据时用到的编码规则,但是,介绍具体的编码规则之前,我觉得有必要先简单介绍一下google protobuf.因此,本文首先会介绍一些google ...

随机推荐

  1. java学习引言

    Java学习之路:不走弯路,就是捷径 0.引言 软件开发之路是充满荆棘与挑战之路,也是充满希望之路.Java学习也是如此,没有捷径可走.梦想像<天龙八部>中虚竹一样被无崖子醍醐灌顶而轻松获 ...

  2. 【Android - 控件】之可悬浮列表StickyHeadersRecyclerView

    这是timehop的GitHub上发表的一个控件框架,大家可以去参考它的[GitHub]. 这里先贴出GitHub上提供的效果图: 要使用这个框架,我们需要首先导入它的依赖: compile 'com ...

  3. 【BZOJ2190】【Luogu P2158】 [SDOI2008]仪仗队

    前言: 更不好的阅读 这篇题解真的写了很久,改了又改才成为这样的,我不会写题解但我正在努力去学,求通过,求赞... 题目: BZOJ Luogu 思路: 像我这样的数论菜鸡就不能一秒切这题,怎么办呢? ...

  4. 前端工具-定制ESLint 插件以及了解ESLint的运行原理

    这篇文章目的是介绍如何创建一个ESLint插件和创建一个ESLint rule,用以帮助我们更深入的理解ESLint的运行原理,并且在有必要时可以根据需求创建出一个完美满足自己需求的Lint规则. 插 ...

  5. 【Python成长之路】词云图制作

    [写在前面] 以前看到过一些大神制作的词云图 ,觉得效果很有意思.如果有朋友不了解词云图的效果,可以看下面的几张图(图片都是网上找到的): 网上找了找相关的软件,有些软件制作 还要付费.结果前几天在大 ...

  6. Python之HTTP静态Web服务器开发

    众所周知,Http协议是基于Tcp协议的基础上产生的浏览器到服务器的通信协议 ,其根本原理也是通过socket进行通信. 使用HTTP协议通信,需要注意其返回的响应报文格式不能有任何问题. 响应报文, ...

  7. shell执行数学运算

    整数: expr let $(()) $[] 浮点数: bc 1.使用expr ♦参与运算的成员和运算符之间必须有一个空格: ♦对于那些容易被shell错解的,在它们传入expr命令之前,需要使用sh ...

  8. 牛客剑指offer(持续更新~)

    第一题:二维数组的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数, ...

  9. 2019ICPC 上海网络赛 G题 Substring(哈希)

    题意: 给了一个母串S, 每次循环给了一个模板串,问模板串在母 串中“匹配”了多少次?“匹配”的意思就是首字母和尾字母一样, 中间字母顺序可以换. 题解: 字符串hash.我们将询问字符串的首尾特殊h ...

  10. (全国多校重现赛一)A-Big Binary Tree

    You are given a complete binary tree with n nodes. The root node is numbered 1, and node x's father ...