数据结构之typedef在结构体中的用法

/*
    2019年10月12日19:25:25
    说明:typedef在结构体中的应用
*/
#include<stdio.h>

typedef struct Student
{
    char name[9];
    int age;
}STU,*PSTU; //STU相当于struct Student,PSTU相当于struct Student *

int main(void)
{
    STU st; // 相当于struct Student st;
    PSTU pst = &st; //相当于struct Student *pst
    strcpy(pst->name,"蜡笔小新");
    pst->age = 5;
    printf("%s今年%d岁了\n",pst->name,pst->age);
    return 0;
}

原文地址:https://www.cnblogs.com/baoyingying/p/11663532.html

时间: 2024-10-17 22:34:45

数据结构之typedef在结构体中的用法的相关文章

结构体中函数指针与typedef关键用途(函数指针)

// 结构体函数指针.  #include<stdio.h> //为了代码的移植考虑,一般使用typedef定义函数指针类 ,另一个好处是,减少代码的书写量.  typedef void (*shout)(char *name,int age); typedef struct {  //用指针来存储字符串     char *name;    int age ;    shout personinfo; }person; //类似于c++中类方法的实现,在这里,是为结构体中指针函数提供实现.在

结构体中typedef语句用法总结

typedef为C语言的关键字,作用是为一种数据类型(这里仅讨论结构体数据类型)定义一个新名字.在编程中使用typedef目的一般有两个:给变量一个易记且意义明确的新名字:简化一些比较复杂的类型声明.1.typedef的最简单使用      typedef int Data;   //给已知数据类型int起个新名字---Data. 2.typedef 用法 & 结构体   typedef struct Node{           int info;           char flag;

C++结构体中sizeof(1)

sizeof sizeof操作符的作用是返回一个对象或类型名的长度,长度的单位是字节. 返回值的类型是标准库命名为size_t的类型,size_t类型定义在cstddef头文件中,该头文件是C标准库的头文件stddef.h的C++版本.他是一个和机器相关的unsigned类型,其大小足以保证内存中对象的大小. 1.什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, as

file结构体中private_data指针的疑惑【转】

本文转载自:http://www.cnblogs.com/pengdonglin137/p/3328984.html hi all and barry, 最近在学习字符设备驱动,不太明白private_data在字符驱动中的作用,我们在 驱动中添加一个设备结构体,然后定义了这个结构体的全局指针变量,接着我们就能在 驱动程序中使用这个指针了.我看到很多驱动程序中都把结构体指针付给private_data, 然后对private_data操作. 为什么要使用private_data,难道仅仅是避免使

结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势:(1).不需要初始化,数组名直接就是所在的偏移:(2).不占任何空间,指针需要占用int长度空间,空数组不占任何空间.“这个数组不占用任何内存”,意味着这样的结构节省空间:“该数组的内存地址就和它后面的元素地址相同”,意味着无需初始化,数组名就是后面元素的地址,直接就能当指针使用. 这样的写法最适合制作动态buffer,因为可以这样分配空间malloc(sizeof(struc

libev 中 ev_loop 结构体中的成员变量

1.ev_loop是libev用来描述事件循环的结构体.在libev中的定义比较绕,这里把它摘抄出来,做下注释,方便学习.libev的定义如下 struct ev_loop { ev_tstamp ev_rt_now; #define ev_rt_now ((loop)->ev_rt_now) #define VAR(name,decl) decl; #include "ev_vars.h" #undef VAR }; #include "ev_wrap.h"

结构体中的位域

在储存信息时,有时并不需要一个字节的空间而是只需要几个二进制位就足够了.因此在C语言中为了节省空间提高效率,因此引出了位域(也叫位段)的概念. 如下代码中: #include<stdio.h> typedef struct Test { char a : 1; char b : 1; char c : 1; }Test; void main() { printf("sizeof(Test) = %d\n",sizeof(Test)); } a,b,c都是字符类型,而每个字符

对于结构体中内存对齐的简单说明

结构体内存对齐的原因: 在运行一个结构体时,编译器需要给结构体中的每个变量成员分配内存空间,如这样一个结构体中 typedef struct A { char c1; int i; int j; }A; 对其内存空间分配问题进行分析,如若不进行内存对齐,它的内存空间是: char类型变量c1占1个字节,紧接着int类型变量i与j分别占4个字节,总有9个字节,在访问时,如图1,访问次数较多:在图2中,总有12个字节空间,虽然浪费了c1后的三个字节空间,访问次数却变少,会很大程度上节省了时间,提高了

C/C++ 错误笔记-在给结构体中的指针赋值时,要注意该指针是否已指向内存空间

先来看下面的例子: #include <stdlib.h> #include <string.h> #include <stdio.h> #pragma warning(disable:4996) typedef struct _Student { char name[64]; int age; }Student; typedef struct _Teacher { char name[64]; int age; char *p1; char **p2; Student