1. StructHandler.c:

/*
 * StructHandler.c
 *
 *  Created on: Jul 6, 2013
 *      Author: wangle
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void modifyName(struct student *p);

int main(){
    struct student{
        char name[50];
        char dep[50];
        long no;
        float score[4];
    };

typedef struct student stu_t;

struct student stu[50]={
        "wangle", "Math", 80,80,90.5,99,100,
        "xuyehui", "biological", 90,90,90,70,100,
        "mengmeng", "Math", 100,100,100,100,90
    };
    int i;
    for(i=0; i<3; i++){
        printf("%s, %s, %ld, %.2f,%.2f,%.2f,%.2f\n", stu[i].name, stu[i].dep, stu[i].no,
                stu[i].score[0], stu[i].score[1], stu[i].score[2], stu[i].score[3]);
    }

stu_t * p = stu;
    puts((*(p+1)).name);     //(1) a pointer call style.
    puts((p+1)->name);       //(2) common pointer call style. (1) and (2) is the same.

printf("%s\n", (p+2)->name);
    printf("%s\n", (*(p+2)).name);
    printf("no = %ld\n", p->no);
    void modifyName(struct student * p){
            p->no = 123456;
    }

modifyName(p);
    printf("%s\n", (p)->name);
    printf("no = %ld\n", p->no);
}

2. UnionHandler.c

/*
 * UnionHandler.c
 *
 *  Created on: Jul 6, 2013
 *      Author: wangle
 */

#include <stdio.h>
int main(){
    union unidate{
        char c;
        int i;
        long l;
        float f
    };
    union unidate x;
    x.c=65;
    printf("c=%c\n", x.c);
    x.i = 10;
    printf("i=%d\n",x.i);
    x.l = 100;
    printf("l=%ld\n", x.l);
    x.f = 90.5;
    printf("f=%.1f\n", x.f);
    printf("c=%c\n", x.c);
}

struct and union example的更多相关文章

  1. 关于C中struct和union长度的详解

    这几天看<代码大全>中的第十三章---不常见的数据类型,里面讲解到了C语言中的struct以及对指针的解释,联想到以前看过相关的关于C语言中stuct长度的文章,只是现在有些淡忘了,因此今 ...

  2. 【转】C/C++ struct/class/union内存对齐

    原文链接:http://www.cnblogs.com/Miranda-lym/p/5197805.html struct/class/union内存对齐原则有四个: 1).数据成员对齐规则:结构(s ...

  3. 【转】结构struct 联合Union和枚举Enum的细节讨论

    结构struct 联合Union和枚举Enum的细节讨论 联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换 ...

  4. struct 和union的区别

    union ( 共用体):构造数据类型,也叫联合体  用途:使几个不同类型的变量共占一段内存(相互覆盖) struct ( 结构体 ):是一种构造类型 用途: 把不同的数据组合成一个整体——自定义数据 ...

  5. C语言进阶——struct和union分析10

    struct的小秘密: C语言中的struct可以看作变量的集合 struct的问题:空结构体占用多大内存呢? 程序实例1: #include <stdio.h> struct TS { ...

  6. <转> Struct 和 Union区别 以及 对内存对齐方式的说明

    转载地址:http://blog.csdn.net/firefly_2002/article/details/7954458 一.Struct 和 Union有下列区别: 1.在存储多个成员信息时,编 ...

  7. struct与 union的基本用法

    结构体与联合体是C语言的常见数据类型,可对C的基本数据类型进行组合使之能表示复杂的数据结构,意义深远,是优异代码的必备工具.一.        struct与 union的基本用法,在语法上union ...

  8. struct和union

    struct的小秘密 C语言中的struct可以看做变量的集合,struct的问题: 空结构体占用多大内存? 例子1:空结构体的大小 #include<stdio.h> struct ST ...

  9. c++ struct enum union加typedef与不加typedef

    struct/enum/union加typedef与不加typedef 匿名结构体 struct { int a; int b; } v; // 这里表示定义了一个结构体的变量v,且结构体类型没有名字 ...

  10. struct与union字节大小的终极解释

    1.字节对齐的细节和编译器实现相关,但一般而言,如在windows下,就VC而言,满足一下三个准则:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除:2) 结构体每个成员相对于结构体首地址 ...

随机推荐

  1. js与android原生交互

    package com.liuhao.mysecond; import androidx.annotation.RequiresApi;import androidx.appcompat.app.Ap ...

  2. struts2 paramsPrepareParamsStack拦截器简化代码(源码分析)

    目录 一.在讲 paramsPrepareParamsStack 之前,先看一个增删改查的例子. 1. Dao.java准备数据和提供增删改查 2. Employee.java 为model 3. E ...

  3. javascript全量匹配屏蔽词

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. python自动化之函数封装

    函数最重要的目的是方便我们重复使用相同的一段程序. 将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句. 前面一些记录了selenium的各种API ...

  5. Mybatis笔记 - SQL标签方法

    Mpper.xml映射文件中定义了操作数据库的sql,并且提供了各种标签方法实现动态拼接sql.每个sql是一个statement,映射文件是mybatis的核心. 一.内容标签 1.NamePlac ...

  6. jsp中jstl、el使用

    tomcat7.0+JSTL1.1.2(不冲突) EL表达式获取变量 ${表达式} 如:${user.name} 不可以动态取值 ${user[name]}可以动态取值,变量名中含有特殊字符时只能用此 ...

  7. PicoCTF 2013 Dark Star 分析

    0x00题目 题目可以从GitHub中找到:https://github.com/picoCTF/2013-Problems/blob/master/Dark%20Star/darkstar.img ...

  8. SQL 测验题目(30道)

    1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT 3.哪条 SQL 语句用于更新数据库中的数据 ...

  9. 74HC AHCT LS LV ABT区别

    1. 含义 2. 74AHC 74AHCT 74LV 74LS 2.1 解释 AHC与AHCT均是先进的高速的CMOS器件,但是供电电压范围不同,输入的逻辑电平也不同. LV是低压版,当自身供电电压为 ...

  10. JS检查断网

    window.addEventListener('load', function() { function updateOnlineStatus(event) { var condition = na ...