惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
月光博客
月光博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 聂微东
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
雷峰网
雷峰网
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
美团技术团队
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
Jina AI
Jina AI
D
Docker
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - 牛啊牛

我的程序优化-尽量减少数据库连接操作 程序员最郁闷的十件事 varchar和nvarchar的区别 架构师向左,项目经理向右?? 由布局学习CSS——IE6,7,8(Q)的浮动行内元素在某些情况下发生折行的bug Microsoft Document Explorer 2005安装失败解决方案 . 关于.NET的探针 学习之路九:深入剖析Web分页原理 HTTP 错误 500.21 - Internal Server Error DataTable导出到Excel时身份证号信息自动转换为科学计数法的解决方案 肌肉男MuscleNerd宣告全新iPad越狱成功 windows 2003 server iis6.0 完整安装包 带无法复制解决方法 SQL SERVER 2005无法远程连接 用jquery刷新aspx中的iframe的src并进行刷新 【原译】什么是TCHAR,WCHAR,LPSTR,LPWSTR,LPCTSTR.等等 8个2012年值得关注的社会化营销趋势 电商价格战有望收敛:行业或将整体走向冷静 谈谈新站初期做优化的一些误区 提高你开发效率的十五个 Visual Studio 使用技巧
C结构入门
牛啊牛 · 2012-03-11 · via 博客园 - 牛啊牛

设计程序最重要的一个步骤就是选择一个表示数据的好方法。在多数情况下,使用简单的变量或数组都是不够的。C结构变量(structure variable)进一步增强了表示数据的能力。C的结构的基本形式就足以灵活地表示多种数据,并且它还使你能够创建新的形式。如果你熟悉Pascal语言的“记录”的话。你对C的结构就不会陌生了。

现今常用的有struct ,union ,enum三种数据类型。

结构的声明(structure declaration)是描术结构如何组合的主要方法。如下:

struct book{

  char *title;

  char *author;

  float value;

};

这样的一个声明描述了一个由两个cahr型指针的变量和一个float型的变量。它并没有创建实际的数据对象,而是描述了组成这类对象的元素(它就如同一个模版一样)。你可以用关键字struct,表示接下来的一个结构。

struct book library;  //这里的library声明为一个使用book结构设计的结构变量,这时就创建了数据对象,并为结构library分配了结构所需要的内存空间。这里的book只表示一种数据类型而已,在同一个程序中还可以声明其它的结构变量。如:

struct book diskbook;

同样可以同时定义多个结构变量,甚至可以定义一个指向该结构的指针。如:

struct book pansh,*ptbook;

这个里的每一个结构变量均包含 title, author和value部分。

你也可以这样声明:

struct book{

  char * title;

  char * author;

  float value;

}library;    /*在定义这后跟变量名*/

即:声明结构的过程和定义结构变量的过程合并成一步。还有一种情况就是无需标记的情况。如:

struct {    /*无标记*/

  char * title;

  char * author;

  float value;

}library;

这种情况不能够多次使用一个结构模版。如果你想多次使用一个结构模版,就需要使用带有标记的形式;或者使用typedef方法。

初始化结构

如:

struct book library{

  "C language",

  "Renee Vivotte",

  1.38

}; 

注意:初始化要用大括号括起来,每个项目用逗号分隔,并且要与结构成员类型相匹配。

现在说了半天只是说的如何申明一个结构,现在说说如何使用它。

结构就像是一个“超级数组”,数组是使用每个元素的标号元素进行访问,那么结构的各个成员要如何访问呢?

我们可以用一个结构运算符点(.)。如:

library.value就是指library中的value元素。所以你可以这样使用它:

  scanf("%f",&library.value);    /*这里的.比&拥有更高的优先级*/

  gets (library.author);