c语言结构体指针嵌套结构体

c语言结构体可以随意嵌套结构体么?

可以,typedef是将其定义为一种类型,方便于后来定义此类型的变量

给你举个例子:

第一种方式:

struct panel

{

};

struct player

{

struct panel panel1;

};

后面如果需要定义player类型的变量,则要有此格式: struct player var1

第二种方式:

typedef struct panel

{

};

typedef struct player

{

panel panel1;

};

如果需要定义player类型变量,则用 player var1就可以了!

typedef是定义变量类型!

是否main之内,都可以用

typedef后,再定义不需要加struct

而没有typedef,定义时要加struct

我给你改好了!已经回复!

c语言结构体指针嵌套结构体

有关C语言嵌套结构体的赋值

struct b *bshi;

bshi = (struct b*)malloc(sizeof(struct b));

memset(bshi, 0, sizeof(struct b);

bshi-bb = 1;

strcpy(bshi-a.aa, “string”);

bshi-a.aaa = ‘a’;

free(bshi);

C语言结构体嵌套问题

更正如下:注意语法

#includestdio.h

struct

Date

{

int

month;

int

day;

int

year;

};

struct

Person

{

char

name[20];

char

sex;

struct

Date

birthday;

unsigned

num;

};

int

main(void)

{

struct

Person

p1={“WangLi”,’M’,12,15,1974,111000222};

struct

Person

p2;

p2=p1;

printf(“zhang:%s,%c,%d-%d-%d,%lu\n”,p1.name,p1.sex,p1.birthday.month,p1.birthday.day,p1.birthday.year,p1.num);

return

0;

}

C语言中结构体嵌套

struct student

{

char name[20];

int age;

};

typedef struct student STU; //学生

struct class

{

STU students[50];

};

typedef struct class Class; //班

void main(void)

{

STU students[50]={…初始化}; //学生数组

STU …..

Class classes[8]; //班级数组

classes[0].students = students; //初始化班级学生

classes[1].students = ….

……

}

粗略的描述了一下,用指针来做最好!

C语言结构体的嵌套问题

scanf输入格式有问题

#include stdio.h

#include stdlib.h

#include malloc.h

#include string.h

struct course

{

char name[10];

int score;

int credithour;

};

typedef struct student

{

char name[10];

struct course s[5];

int average;

struct student *next;

}STU;

void Create(STU *L)

{

int i,sum;

STU *p,*s=L;

while (1)

{

p=(STU *)malloc(sizeof(STU));

s-next=p;

printf(“name\n”);

scanf(“%s”,p-name);

if (strcmp(p-name,”exit”)==0)

{

s-next=NULL;

break;

}

s=p;

for (i=0; i5; i++)

{

printf(“course\n”);

scanf(“%s”,p-s[i].name);

printf(“course score\n”);

scanf(“%d”,p-s[i].score);//注意scanf的输入格式

printf(“course credithour\n”);

scanf(“%d”,p-s[i].credithour);//同上

sum+=p-s[i].score;

}

p-average=sum/(i+1);

}

}

void main()

{

STU *L;

L=(STU *)malloc(sizeof(STU));

L-next=NULL;

Create(L);

}

C语言 如何在结构体中给嵌套的结构体赋值?

结构体嵌套,赋初值,大括号嵌套就可以了。

问题是你代码写错了。

你定义的old1不是结构类型,而是结构变量。

在shuju中成员要写struct old 变量名;

不能写struct old1。

下面是演示代码:(补充:如果想定义一个结构类型别名,要用typedef)

#include stdio.h

struct old

{

int year;

int month;

int day;

}old1={1972, 8, 3};

struct shuju

{

char name[10];

char gender[6];

int height;

struct old old1;

char access[9];

}shuju1={“moumouren”,”male”,175,{2019,6,29},”well”};

int main()

{

printf(“结构变量old1的初值:            %d %d %d\n”,old1.year,old1.month,old1.day);

printf(“结构变量shuju1中成员old1的初值:%d %d %d\n”,shuju1.old1.year,shuju1.old1.month,shuju1.old1.day);

printf(“我特意起一样的名字,就是告诉你这两个变量是不一样的。\n”);

return 0;

}

/*(补充:如果想定义一个结构类型别名,要用

typedef struct old

{

int year;

int month;

int day;

}old1;//这样old1才表示是一个类型,然后再定义该类型变量时,才可以写 old1 变量名;

)*/

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月28日 15:33:30
下一篇 2024年3月28日 15:41:39

相关推荐

  • c语言二维数组的指针,c语言二维数组的指针是什么

    C语言中“二维数组行指针”是什么意思 在C语言中,可以通过定义一个行数组指针,使得这个指针与二维数组名具有同样的性质,实现它们之间可以直接赋值。 数组名就是一个指针常量,它代表数组元素在内存相关信息。C语言 是一门通用计算机编程语言,应用广泛。 a即是它的行指针,a+0表示第0行的地址,a+1表示第1行地址…a[row]+col即列指针,列指针经过一次解引用…

    2024年5月23日
    4800
  • c语言结构体题目,c语言结构体题目及答案

    C语言,结构体题目,怎么做,求大神修改一下 1、首先,你的结构体出现问题。struct student { char name;int number;float graduate[3];float ave;}stu[3];这里定义的是char name,而你输入数据时候却用%s这个格式控制符。 2、},a; //这里多了个逗号,改成 }a; 就行了,这样就可…

    2024年5月23日
    5500
  • 单片机c语言结构体使用,单片机结构体菜单编写

    C语言中结构体的理解 1、在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。 2、结构体是C语言中聚合数据类型(aggregatedatatype)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。…

    2024年5月23日
    7200
  • linux文件系统ssd,Linux文件系统结构

    【Linux】Linux下判断磁盘是SSD还是HDD的几种方法 1、通过判断cat /sys/block/*/queue/rotational的返回值(其中*为你的硬盘设备名称,例如sda等等),如果返回1则表示磁盘可旋转,那么就是HDD了;反之,如果返回0,则表示磁盘不可以旋转,那么就有可能是SSD了。 2、方法一:使用硬件工具检测使用鲁大师硬件检测,主硬…

    2024年5月23日
    9100
  • c语言filetime,c语言FILE结构体

    请教下:C语言获取计算机系统CPU使用率,内存使用情况的思路或流程是怎样… 1、printf(%s\n,LogBuff);以上程序分别输出可用百分比,可以用物理内存/总物理内存,可用页面文件/总页面文件 获取CPU的比较复杂,我这边只有获取单个进程CPU占用的方法,不过可以遍历所有进程分别获取再求和就是整个cpu占用率了。 2、首先是获取特定进程…

    2024年5月22日
    4000
  • c语言函数嵌套调用,c语言函数嵌套调用程序运行结果

    c语言中嵌套调用和递归调用的区别 1、区别:函数的嵌套调用是指在一个C语言函数里面在执行另一个函数,这样通常称为函数的嵌套调用。而函数的递归调用,一般指的是这个C语言函数调用自己本身的函数也就是说调用函数的函数体是一样的,这样称为递归调用。 2、递归调用是指自己调用自己,而嵌套调用是指两个或多个函数间相交叉互调用。递归调用时,函数自身必须更改返回(结束)条件…

    2024年5月22日
    4900
  • 单片机c语言释放指针,单片机指针最常见的两种

    c语言指针指向的局部变量释放? C语言中可以使用free函数释放指针。free函数:原型:void free(void ptr);功能:释放malloc(或calloc、realloc)函数给指针变量分配的动态内存。 函数里面的局部变量只有在函数结束后才会释放。main函数里面的a也是,只有main函数结束也就是程序运行结束才会释放。当你进入processi…

    2024年5月22日
    4900
  • c语言编程语句结构,c语言程序结构的3种基本结构

    c语言的三种基本结构 1、C语言程序的三种基本结构是(B、顺序结构,选择结构,循环结构)。C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大。 2、C语言的三种基本结构分别是顺序结构、选择结构和循环结构。顺序结构 顺序结构就是从头到尾一句接着一句的执行下来,执行完上一个语句就会…

    2024年5月22日
    4000
  • java结构体系,java体系结构图

    java虚拟机采用什么软件体系结构 1、【J2EE体系结构简介】J2EE是针对web服务、业务对象、数据访问和消息传送的一组规范。这组应用编程接口(API)确定了web应用与驻留它们的服务器之间的通信方式。 2、Java虚拟机体系结构Java虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap…

    2024年5月22日
    4300
  • c语言数组与指针应用,c语言数组的指针

    C语言中指针和数组是怎样相互转换的 指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。 (1)指针数组:它实际上是一个数组,数组的每个元素存放的是一个指针类型的元素。 地址是可以用加减运算符的,比如a+1就相当于&amp…

    2024年5月21日
    3800

发表回复

登录后才能评论



关注微信