如何给C语言结构体中的成员赋默认值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何给C语言结构体中的成员赋默认值相关的知识,希望对你有一定的参考价值。
例如
struct node
int flag;;
我想每声明一个node变量,其中的flag值默认为0,该怎么办?
问题补充:那么在C语言中可不可以对结构体赋默认值呢?
比如:
struct date
nt month;
int day;
int year;
;
struct student
char name[20];
struct date birthday;
student1;
那么你想给student1的生日里的year赋值的话
student1.birthday.year=1987; 参考技术A 不能赋初值,会报错的 我刚刚在vc6.0 环境下面验证过了 参考技术B strcut node temp = 0;
C++结构体如何设置默认值?
几天老师讲了类类型可以通过构造函数对其成员进行初始化。
在结构体中可以吗?
例如
struct node
int flag;;
我想每声明一个node变量,其中的flag值默认为0,该怎么办?
那么在C语言中可不可以对结构体赋默认值呢?
在结构体中可以吗?
可以的。
我想每声明一个node变量,其中的flag值默认为0,该怎么办?
像下面这样:
#include <iostream.h>
struct node
int flag;
node(); // 默认构造函数
;
node::node()
flag = 0; // 像这样
int main(int argc, char *argv[])
// 测试
node n;
cout << n.flag << endl;
return 0;
参考技术A 1)默认成员访问权限为struct为public,class为private;
(2)默认继承权限,继承自struct的默认为public继承,继承自class的默认为private继承。
除此之外,class是怎样的,struct就是怎样。
至于只有基本类型成员的POD类型来说,它确实有一些特别的地方,比如可以用大括号的语法来初始化。但这一点class也是一样的,并没有什么实质区别。比如你的:
struct SysMaskPara
int UpPortFirst;
int UpPortSecond;
int UpPortThird;
int UpPortFourth;
;
如果改写成:
class SysMaskPara
public:
int UpPortFirst;
int UpPortSecond;
int UpPortThird;
int UpPortFourth;
;
在C++语言中,效果上是一样的。只不过那样一来,C语言用不了了。 参考技术B c++中的结构体基本上可以和类等同,只是结构体的默认权限是public,而类的则是private,完全可以给结构体写构造函数,但是在c语言中就不可以。 参考技术C 默认值设置为0
sturct node aaa;
直接用memset(&aaa,0,sizeof(node)); 参考技术D 可以 结构体除了默认属性私有以外 跟类是一样的
以上是关于如何给C语言结构体中的成员赋默认值的主要内容,如果未能解决你的问题,请参考以下文章