zoukankan      html  css  js  c++  java
  • 【C语言天天练(十)】结构体

    引言:数据常常以成组的形式存在。在C中,使用结构能够把不同类型的值存放在一起。

    结构的声明有两种

    1、struct SIMPLE{

    int a;

    char b;

    float c;

    };然后用标签SIMPLE去声明结构体变量。

    2、typedef struct{

    int a;

    char b;

    float c;

    }Simple;然后用Simple去声明结构体变量。

    此时Simple是个类型名。而不像上面的SIMPLE是个标签。

    结构成员能够是标量、数组、指针甚至是其它结构

    结构成员的直接訪问用点操作符(.)訪问。比如Simple a;a.a或a.b或a.c。

    结构成员的间接訪问用->操作符訪问,它是针对结构指针使用的。比如Simple *a。a->a或a->b或a->c。

    结构的自引用是结构的成员里包括结构本身,但这样的包括不能是直接包括,而应该包括的是指向该结构的指针


    结构作为函数參数时。一般使用指向结构的指针。向函数传递指针的缺陷在于函数如今能够对调用程序的结构变量进行改动。假设不希望如此。能够在函数使用constkeyword来防止这类改动。

    并且。传递结构指针比传递结构本身更有效率。

    总结:

    1、具有同样成员列表的结构声明产生不同类型的变量。

    2、使用typedef为一个子引用的结构定义名字时应该小心。

    3、向函数传递结构參数是低效的。

    4、把结构标签声明和结构的typedef声明放在头文件里。当源文件须要这些声明时能够通过#include指令包括。

    5、结构成员的最佳排列形式并不一定就是考虑边界对齐而浪费内存空间最少的那种排列形式。


查看全文
  • 相关阅读:
    BZOJ 1823: [JSOI2010]满汉全席 [2-SAT]
    POJ 3683 Priest John's Busiest Day[2-SAT 构造解]
    Centos出现-bash: unzip: command not found的解决办法
    物理cpu与逻辑cpu概述
    如何正确查看Linux机器内存使用情况
    connections java.net.BindException: Address already in use_解决方案
    Linux查看端口、进程情况及kill进程
    linux如何查看端口被哪个进程占用?
    如何正确查看Linux机器内存使用情况
    TPS和事务响应时间的关系
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10796245.html
  • Copyright © 2011-2022 走看看