c语言中结构体中有结构体怎么初始化

c语言中结构体中有结构体怎么初始化,第1张

多加一个大括号。

比如

struct A 
{
    int a;
    char b;
};
struct B
{
    float a;
    struct A sa;
    double b;
};

可以

struct B b = {11,{10, 'c'}, 22};

Date()里面的用你自定义的结构体类型做形参的类型!
class
Date
{
public:
Date(struct
Time
t)
{
//这里是实现功能函数体,也就是初始化结构体数据成员!
}
private:
struct
Time
T;//要初始化的结构体数据成员!
//Date类里其他成员我就省略没写了!
}
希望对你有用,谢谢!
希望多看看C++类、构造函数等相关内容!

sturct [name]{
    [变量声明];
    ;
};
初始化:[name] [变量名];
赋值:[变量名]={[内部变量],};
      [变量名][内部变量]=[值];
      
希望对你有帮助

struct node nodes[MAX];
memset(nodes,0,sizeof(nodes));
这样就全部初始化为全0了。(注意结构体数据成员不能是非纯C成员。比如string等)。

你好,试试这个。
C/C++ code
struct Point
{
int x;
int y;
Point(int x0,int y0)
{
x=x0;
y=y0;
}
};
class CTest
{
public:
CTest():
m_iCount(0), //将m_iCount初始化为0
m_Point(0,0) //这里应该怎么写,对于结构体?
{}

private:
int m_iCount;
Point m_Point;

方法是有的,不过并不太赞成这种做法,不过如果仅仅是作为初始化使用的话,可以先定义一个初始化的函数,并保证在别的地方不再调用这个函数,倒也可以行,代码如下:
#include <stdioh>
#include <malloch>
typedef struct
{
int const p;
} C;
int main()
{
int i = 0;
C c = (C)malloc(sizeof(C));
printf("Old: 0x%08X\n", c->p);
(int)(c->p) = &i; // 最关键的一步。
printf("new: 0x%08X\n", c->p);
free(c);
return 0;
}
----------------------------------- 补充1
C中是没有构造函数的概念的,所以妄图想C++那样在对象构造的同时对对象进行初始化是误解的,唯一的方法就是写一个特殊的函数,用这个函数来初始化一个结构体的内存,甚至可以用memset()函数都可以,所以你的要求已经退化成如何对结构体进行初始化了,这是很多C++程序员回头写C程序的时候,都会反复思考的问题。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12707469.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-27
下一篇2025-08-27

发表评论

登录后才能评论

评论列表(0条)

    保存