struct and union example
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的更多相关文章
- 关于C中struct和union长度的详解
这几天看<代码大全>中的第十三章---不常见的数据类型,里面讲解到了C语言中的struct以及对指针的解释,联想到以前看过相关的关于C语言中stuct长度的文章,只是现在有些淡忘了,因此今 ...
- 【转】C/C++ struct/class/union内存对齐
原文链接:http://www.cnblogs.com/Miranda-lym/p/5197805.html struct/class/union内存对齐原则有四个: 1).数据成员对齐规则:结构(s ...
- 【转】结构struct 联合Union和枚举Enum的细节讨论
结构struct 联合Union和枚举Enum的细节讨论 联合(Union)是一种构造数据类型,它提供了一种使不同类型数据类型成员之间共享存储空间的方法,同时可以实现不同类型数据成员之间的自动类型转换 ...
- struct 和union的区别
union ( 共用体):构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖) struct ( 结构体 ):是一种构造类型 用途: 把不同的数据组合成一个整体——自定义数据 ...
- C语言进阶——struct和union分析10
struct的小秘密: C语言中的struct可以看作变量的集合 struct的问题:空结构体占用多大内存呢? 程序实例1: #include <stdio.h> struct TS { ...
- <转> Struct 和 Union区别 以及 对内存对齐方式的说明
转载地址:http://blog.csdn.net/firefly_2002/article/details/7954458 一.Struct 和 Union有下列区别: 1.在存储多个成员信息时,编 ...
- struct与 union的基本用法
结构体与联合体是C语言的常见数据类型,可对C的基本数据类型进行组合使之能表示复杂的数据结构,意义深远,是优异代码的必备工具.一. struct与 union的基本用法,在语法上union ...
- struct和union
struct的小秘密 C语言中的struct可以看做变量的集合,struct的问题: 空结构体占用多大内存? 例子1:空结构体的大小 #include<stdio.h> struct ST ...
- c++ struct enum union加typedef与不加typedef
struct/enum/union加typedef与不加typedef 匿名结构体 struct { int a; int b; } v; // 这里表示定义了一个结构体的变量v,且结构体类型没有名字 ...
- struct与union字节大小的终极解释
1.字节对齐的细节和编译器实现相关,但一般而言,如在windows下,就VC而言,满足一下三个准则:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除:2) 结构体每个成员相对于结构体首地址 ...
随机推荐
- js与android原生交互
package com.liuhao.mysecond; import androidx.annotation.RequiresApi;import androidx.appcompat.app.Ap ...
- struts2 paramsPrepareParamsStack拦截器简化代码(源码分析)
目录 一.在讲 paramsPrepareParamsStack 之前,先看一个增删改查的例子. 1. Dao.java准备数据和提供增删改查 2. Employee.java 为model 3. E ...
- javascript全量匹配屏蔽词
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python自动化之函数封装
函数最重要的目的是方便我们重复使用相同的一段程序. 将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句. 前面一些记录了selenium的各种API ...
- Mybatis笔记 - SQL标签方法
Mpper.xml映射文件中定义了操作数据库的sql,并且提供了各种标签方法实现动态拼接sql.每个sql是一个statement,映射文件是mybatis的核心. 一.内容标签 1.NamePlac ...
- jsp中jstl、el使用
tomcat7.0+JSTL1.1.2(不冲突) EL表达式获取变量 ${表达式} 如:${user.name} 不可以动态取值 ${user[name]}可以动态取值,变量名中含有特殊字符时只能用此 ...
- PicoCTF 2013 Dark Star 分析
0x00题目 题目可以从GitHub中找到:https://github.com/picoCTF/2013-Problems/blob/master/Dark%20Star/darkstar.img ...
- SQL 测验题目(30道)
1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT 3.哪条 SQL 语句用于更新数据库中的数据 ...
- 74HC AHCT LS LV ABT区别
1. 含义 2. 74AHC 74AHCT 74LV 74LS 2.1 解释 AHC与AHCT均是先进的高速的CMOS器件,但是供电电压范围不同,输入的逻辑电平也不同. LV是低压版,当自身供电电压为 ...
- JS检查断网
window.addEventListener('load', function() { function updateOnlineStatus(event) { var condition = na ...