一:结构体
定义结构体类型变量 三种方式
1st:先声明结构体类型,再定义该类型的变量
struct student liming,zhangle;
2nd:声明类型的同时定义变量
struct student{int num; char name[10];}liming={11,"liming"},zhangle;
3rd:不指定类型名而直接定义结构体类型变量 struct {int num; char name[10];}liming={11,"liming"},zhangle; 结构体变量的初始化和引用

struct student
{ int num;
char name[20];
char sex[12];
int age;
float score;
char adds[30];
}liming = {39,"liming","nan",18,55.5,

(1)对成员变量初始化
struct zhangle={.name = "zhangle"};
(2)引用
zhangle.name
(3)结构体多级
student.birthday.month
(4)结构体变量的运算
liming.score = zhangle.score //赋值
(5)同类结构体变量可以相互赋值
liming = zhangle;
二:结构体数组
(1)
struct Person leader[30]
struct      结构体类型     数组名
(2)赋值
struct    Person        leader[30]  = {“ling”,20,"zhang",10,"liz",15};
三:结构体指针
(1)指向结构体变量的指针
struct Student *p;
p指向结构体变量 下面三种用法等价
stu.num
(*p).num p->num
(2)指向结构体数组的指针

struct Student stu[5] = {10101,"zhang",78 ,
10103,"wang ",98.5,
10106,"li ",86 ,
10108,"ling",73.5,
10110,"sun ",100};

struct Student *p;  //定义指向struct Student 结构体变量的指针变量

for(p=stu;p<stu+5;p++)
printf("%5d%6s%7.2f\n",p->num,p->name,p->score);

(3)结构体变量和结构体变量的指针作函数参数

1:结构体变量的成员作参数。  “值传递”

2:结构体变量作为实参。   “值传递”

3:指向结构体变量的指针作实参。将结构体变量的地址传给形参。



c 语言 结构体的更多相关文章

  1. 漫谈C语言结构体struct、公用体union空间占用

    先用代码说话: #include<stdio.h> union union_data0{ int a ;//本身占用4个字节 char b ;//本身占用1个字节 int c ; }; u ...

  2. 解析C语言结构体对齐(内存对齐问题)

    C语言结构体对齐也是老生常谈的话题了.基本上是面试题的必考题.内容虽然很基础,但一不小心就会弄错.写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的 ...

  3. 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符

    [源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...

  4. Go语言结构体(struct)

    Go 语言结构体 Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型. 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合. 结构体表示一项记录,比如保存图 ...

  5. C语言结构体定义的几种方法

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

  6. 对嵌入式开发C语言结构体的一点总结

    今天冬至居然不上班,公司的良心啊!这回有心情写博客和日志了,好了,废话不多说.直接看下文: 鉴于嵌入式开发过程中,C语言结构体的使用当然是必不可少.话说,基础什么的比你会更牛逼的算法更重要,基础不牢, ...

  7. C语言结构体变量私有化

    操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 问题描述 C语言结构体定义中的变量默认是公有(Public)属性,如果实现成员变量的私有(Private)化? 解决方案 ...

  8. 在C语言结构体中添加成员函数

    我们在使用C语言的结构体时,经常都是只定义几个成员变量,而学过面向对象的人应该知道,我们定义类时,不只是定义了成员变量,还定义了成员方法,而类的结构和结构体非常的相似,所以,为什么不想想如何在C语言结 ...

  9. 将c语言的结构体定义变成对应的golang语言的结构体定义,并将golang语言结构体变量的指针传递给c语言,cast C struct to Go struct

    https://groups.google.com/forum/#!topic/golang-nuts/JkvR4dQy9t4 https://golang.org/misc/cgo/gmp/gmp. ...

  10. Linux C语言结构体-学习笔记

    Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...

随机推荐

  1. QcheckBox

    #include "dialog.h" #include "ui_dialog.h" #include <QtCore> #include < ...

  2. iOS Block浅析

    Block 的使用有两种:1.独立Block .2.内联Block .   <一>独立Block 使用方式   一.定义一个Block Object,并调用.   1.定义   // 定义 ...

  3. search搜索功能

    1.html <div class="search">        <form name="formsearch" action=" ...

  4. PHP如何解决网站大流量与高并发的问题

    首先,确认服务器硬件是否足够支持当前的流量. 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻 ...

  5. struts配置测试中遇到报错信息,记录下

    tomcat7 jdk7myeclipse2014 部署完成后,访问页面报错struts.xml文件内容: <?xml version="1.0" encoding=&quo ...

  6. Android --设置Toast消失时间

    参考博客:Android开发,Toast重复显示(显示时间过长)解决方法 package com.dr.app.drseamoniter.toast; import android.content.C ...

  7. Java foreach

    foreach循环也叫增强型的for循环,或者叫foreach循环. foreach循环是JDK5.0的新特性(其他新特性比如泛型.自动装箱等). import java.util.Arrays; p ...

  8. [算法]Comparison of the different algorithms for Polygon Boolean operations

    Comparison of the different algorithms for  Polygon Boolean operations. Michael Leonov 1998 http://w ...

  9. C#和VC++字符集和编码

    C# char 关键字用于声明 .NET framework 使用 Unicode 字符表示 System.Char 结构的实例. Char 对象的值是 16 位数字 (序号值.)将字符表示为 UTF ...

  10. 成员变量NSString类型指针的属性为什么用copy(属性)

    创建一个分类Person设置属性@property(nonatomic,strong) NSString * name; 在- (void)viewDidLoad 中打印测试 name的属性是stro ...