今天给各位分享c语言结构体嵌套结构体的知识,其中也会对c语言结构体嵌套结构体指针进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
c语言结构体可以随意嵌套结构体么?
1、当然可以,但是你这个结构体的定义域只在父结构体当中,外面没办法用这个结构体的定义做任何事情。比如:struct A { struct B { };struct B b;};这样用是可以的,但是到了结构之外就不能用struct B来定义数据了。
2、类定义中嵌套结构体是可以的,这里要分几种情况说明:对于已经声明的(在类外)结构体类型,在类定义内嵌套结构体变量,没有任何问题。
3、可以,前提是你结构体中的结构体要在之前定义。
4、可以的 只要另一个结构体的定义 或者声明 在当前结构体之前即可。但不可以互相嵌套。比如 struct a{ int a;};struct b{ int b; struct a m; char c;};这样是完全合法 而且是很常用的。
5、结构体嵌套,赋初值,大括号嵌套就可以了。问题是你代码写错了。你定义的old1不是结构类型,而是结构变量。在shuju中成员要写struct old 变量名;不能写struct old1。
6、C语言实现不了你的想法。结构本身是没有值的,只有结构成员才有值。
C语言中能否在一个结构体内在定义一个结构体
可以,前提是你结构体中的结构体要在之前定义。
可以的 只要另一个结构体的定义 或者声明 在当前结构体之前即可。但不可以互相嵌套。比如 struct a{ int a;};struct b{ int b; struct a m; char c;};这样是完全合法 而且是很常用的。
其实类就是在C++中,对C语言结构体的扩展,在C++中可以将结构体看做是一个最简单的类。
Student stu[3];//定义Student类型的数组stu也能够直接定义1个结构体数组,如 1个结构体常量应包括结构体中全部成员的值。
c语言结构体嵌套的初始化问题
这样的初始化的语句都是非法的。TC确实不允许这样的初始化, TC++里面编译这样的C代码也不行,看来Borland的开发者们还是忠于的早期的C风格。LCC看来也不支持。
定义时,按照成员变量位置,写初始化列表。
结构体是个空架子,是无法“初始化其中的数组”的,只有初始化结构体的对象(即变量)。像你这里可以这么做:在使用这个结构体前写一句struct bf x={NULL,NULL,NULL,NULL};,那么x中的所有字符数组就都为空了。
结构体可以嵌套定义吗
类定义中嵌套结构体是可以的,这里要分几种情况说明:对于已经声明的(在类外)结构体类型,在类定义内嵌套结构体变量,没有任何问题。
结构体可以嵌套使用不能嵌套定义是指结构体在定义时不能含有他自己定义的成员变量,但是可以含有自己定义的指针。
当然可以,但是你这个结构体的定义域只在父结构体当中,外面没办法用这个结构体的定义做任何事情。比如:struct A { struct B { };struct B b;};这样用是可以的,但是到了结构之外就不能用struct B来定义数据了。
// Some code }}这样在函数内定义函数是不允许的。不过结构体是可以嵌套定义的,例如:struct test { int a; struct demo { char b; };};这样在结构体内定义结构体,是可以的。
这种嵌套定义在语法里是允许的,intel fortran 也允许。而且在我的环境下,编译链接都是没有任何问题的。你的问题不是交叉定义引起的,可能是编译器本身没有安装好。
c语言结构体嵌套结构体的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言结构体嵌套结构体指针、c语言结构体嵌套结构体的信息别忘了在本站进行查找喔。