[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语言学习——结构体(struct)的使用

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

结构体struct 名称定义详解

在C语言中,使用struct定义了一个结构体之后,要使用它,也要跟上struct关键字,否则系统不认这个结构体,比如: struct SDK_SYSTEM_TIME{ ........... .......
  • XYK0318
  • XYK0318
  • 2016年08月08日 13:46
  • 377

struct device / device_driver 结构体

一、定义: linux/include/linux/device.h struct device {         struct klist     klist_childre...
  • angle_birds
  • angle_birds
  • 2012年09月23日 23:26
  • 4262

【Struct(结构体)杂谈之六】无既是有---没有成员变量的Struct(结构体)

没有成员变量的Struct(结构体)        在开始本篇之前,想问大家一个问题:        ---0是什么?        ---呵呵,就是没有呗!        ---...
  • tcpipstack
  • tcpipstack
  • 2012年12月02日 23:50
  • 4170

C/C++结构体struct详解

结构体定义 typedefstruct 用法详解和用法小结 typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。 具体区别在于: 若struct n...
  • itguangit
  • itguangit
  • 2015年11月30日 19:07
  • 9337

C 结构体 struct 详解

数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为...
  • zhanghow
  • zhanghow
  • 2016年12月05日 11:47
  • 3374

C语言结构体(struct)常见使用方法

结构体与函数: 关于传参,首先: void func(int); func(a.b.c); 把结构体中的int成员变量当做和普通int变量一样的东西来使用,是不用脑子就想到的一种方法。 另外两...
  • huqinweI987
  • huqinweI987
  • 2014年04月14日 01:51
  • 420917

空结构体struct{}解析

http://www.golangtc.com/t/575442b8b09ecc02f7000057 本篇文章转自David的”The empty struct”一文,原文地址链接是...
  • leonpengweicn
  • leonpengweicn
  • 2017年04月10日 11:27
  • 1151

(struct)结构体变量作为函数参数调用的方法小结

结构体变量作为函数参数传递的3种方法 将一个结构体变量中的数据传递给另一个函数,有下列3种方法: 用结构体变量名作参数。一般较少用这种方法。 用指向结构体变量的指针作实参,将结构体变量的地址传给形参...
  • tham_
  • tham_
  • 2015年04月29日 19:37
  • 25320

struct结构体占内存大小计算

struct结构体占内存大小计算      注意:struct 的{}后面要加上 ”;“ #include struct A {            ...
  • seekcreation
  • seekcreation
  • 2013年10月25日 21:01
  • 4550
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[struct]C语言编程结构体的学习
举报原因:
原因补充:

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