[struct]C语言编程结构体的学习

原创 2015年07月11日 00:17:51
   问题描述:C语言中的结构体可以构造复杂的数据类型。例如有时函数需要传递的参数太多,此时可以考虑用结构体作为参数传入。C语言中的结构体利用函数指针和一般变量可以模拟面向对象语言编程中的属性和方法。结构体的使用非常灵活,下面记录一些结构体使用的较为基础的内容。结构体在其他一些语言中有时被称为记录、字段。
   声明:在花括号中间,每个结构代表一个作用域,可以防止命名冲突,
struct {
    int number;
    int *ptr;
    char name [NAME_LEN + 1];
}part1,part2;
    如果常用到,可以使用类型定义这样声明,
typedef struct {
    int number;
    int *ptr;
    char name [NAME_LEN + 1];
}part_t;
part_t  part1,part2;
    还有一种是结构标记声明,
struct part{
    int number;
    int *ptr;
    char name [NAME_LEN + 1];
};
struct part  part1, part2;
   初始化:可以在声明的同时初始化,如
part_t  part1 = {22, &item, "Good boy"};  // 这种初始化和数组很相似。
    也可以指定初始化:
part_t  part2 = {.number=33, .ptr=&item1, .name="Another boy"};
   相关操作:
    (1)成员访问,用“.”操作符,如part2.number = 25;
    (2)结构体间赋值,如“part2 = part1;”,直接将结构体part1的内容赋值给了part2,但数组中“array1 = array2;”是不允许的。如果要对数组赋值,可以利用结构体的这个特性,将数组放入结构体中,然后对结构体赋值,则包含在结构体中的数组也会跟着被赋值了。
    (3)作为函数参数传入或返回类型的结构体数据,可以考虑用指针来实现(当然直接用结构体传值是可以的),但是这样做可以避免结构体包含存储空间较大造成副本拷贝需要的空间占用,另外在文件操作中,打开一个文件进行操作,打开文件函数返回的就是一个结构体指针,对该文件的操作用指针即可,可以避免文件副本的重复拷贝。
版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言编程入门——结构体(上)

     在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据...

C语言实验报告(结构体(struct))

  • 2017年11月11日 16:43
  • 160KB
  • 下载

C语言学习——结构体(struct)的使用

结构化可以创建一个新的数据类型,得到的数据类型类似于java中的对象。 定义新类型 使用新类型 单个变量 初始化 赋值 输出 多个变量 初始化 赋值 输出 关于新类型的一些其他应用 新类型的变量之间可...

C语言学习笔记(十二) -结构体 Struct

定义结构体变量/* 结构体 自定义的一种类型称为构造类型,在C语言中称为结构体 定义结构体: struct [结构体名] { [成员列表;] }; 定义...

C语言结构体(Struct)——摘自C语言学习网

在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为: struct 结构体名{ 结构体所包含的变量或数组 }; 结构体是一种集合,它里面包含了多个变...

109 C语言结构体(Struct)

C学习网:链接->C学习网 C训练网:链接->C训练网 前面的教程中我们讲解了数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如...

实例讲解c语言结构体大小 sizeof(struct A)

约定为32位系统,即char 1字节、short 2字节、int 4字节 该问题总结为两条规律: 1,每个结构体成员的起始地址为该成员大小的整数倍,即int型成员的其实地址只能为0、4、8等 2,结...

C语言struct关键字详解—结构体

struct 是个神奇的关键字,它将一些相关联的数据打包成一个整体,方便使用。 在网络协议、通信控制、嵌入式系统、驱动开发等地方,我们经常要传送的不是简单的字节流(char 型数组),而是多种数...

深入探索C语言之结构体(struct)

结构(struct)就是一种把一些数据项组合在一起的数据结构,其他语言把它称做为记录(record)。语法为将需要组合的内容放在花括号中,前面加上一个关键字struct,如下: struct {内容...
  • hazir
  • hazir
  • 2012年04月11日 15:34
  • 1083
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[struct]C语言编程结构体的学习
举报原因:
原因补充:

(最多只允许输入30个字)