在自定义结构体中:

默认值同变量一样,int型的为0,指针型的为“NULL”------------并不是整个结构体为NULL,其中的int型还是有值0的,只是指针型的为NULL。例如

struct node{    int v,dis;
};

如果需要手动添加构造函数,代码如下:

struct node{int v,dis;node(int _v,int _dis):v(_v),dis(_dis){}
};

如果需要对部分数据赋初值,可以使用如下格式 :

struct node{int id,total,cnt,score[6],flag;node(){memset(this->score,-1,sizeof(this->score));    //对数组赋初值}
};

定义二叉树结点:

struct node{int data;node* lchild;node* rchild;node(int d):data(d),lchild(NULL),rchild(NULL){}
};
int main()
{int data=10;node* root=new node(data);    //注意分配空间return 0;
}

此时可以在定义node型结构体时直接赋初值,但是如果不赋初值则无法通过编译,因为默认构造函数已经修改了,系统不能再默认添加初始值,如果需要保留默认赋初始值的功能,则可以做如下定义。

struct node{int v,dis;node(int _v=0,int _dis=0):v(_v),dis(_dis){}
};

此时既保留了默认构造函数赋初始值0,也可以自己手动赋初始值。 参考范例:

#include<cstdio>
#include<vector>
using namespace std;struct node{int v,dis;node(int _v=0,int _dis=0):v(_v),dis(_dis){}
};vector<node> adj[100];
int main()
{for(int i=0;i<10;i++){int v,dis;scanf("%d%d",&v,&dis);adj[i].push_back(node(v,dis));}for(int i=0;i<10;i++){printf("%d %d\n",adj[i].v,adj[i].dis);}return 0;
}

C++中---结构体变量的默认值以及构造函数的应用相关推荐

  1. c语言结构体成员变量私有化,C语言中结构体变量私有化详解

    C语言中结构体变量私有化详解 背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚 ...

  2. C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题?

    C语言定义了一个结构体怎么分配内存?C\C++中结构体变量与结构体指针内存分配问题? 问题1:结构体指针最开始怎么分配内存?用sizeof()是不能确定大小的. 问题2:给结构体变量分配之后,是否还要 ...

  3. c语言中结构体变量的作用,C语言 结构体 类型变量的 定义 和 引用

    前面学习了变量和数组这些简单的数据结构,它们的特点是必须使用规定的数据类型.例如数组被定义为整型后,它的所有存储单元都是由整型构成.现实生活中某一类事物的共同属性可能是由不同的数据类型组成的集合,或者 ...

  4. Java中boolean型变量的默认值问题

    1.首先分析Java中的三种不同变量的区别,如下表所示   概念 默认值 其他 类变量 也叫静态变量,是类中独立于方法之外的变量 用static 修饰 有默认初始值,系统自动初始化. 如boolean ...

  5. C语言中结构体变量的定义及引用

    一.结构体变量的定义 1.结构体类型与结构体变量分开定义 一般形式如下: struct<结构体名><结构体变量名>; eg:struct student student1,st ...

  6. c语言实现结构体变量private,C语言中结构体变量私有化详解

    背景介绍 操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 什么是结构体? 在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate ...

  7. c语言中结构体变量怎么初始化为0,C语言高级编程:数组和结构体初始化为0的方法...

    测试平台:64位 X86 Ubuntu 1. 代码: #include #include struct st_stu { char *name; int age; int class; }; void ...

  8. c语言函数的参数是结构变量,何去运用结构体变量和结构的变量的指针作为函数的参数...

    在C语言中我们如何去运用结构体变量和结构的变量的指针作为函数的参数呢,其实我们对于结构体的变量是有一定的了解的,他们就是将一个结构体变量的值传递给另外一个函数,那么这种有三种方法,希望大家都能够了解一 ...

  9. c语言结构体作为形参是否加struct_(struct)结构体变量作为函数参数调用的方法小结...

    结构体变量作为函数参数传递的3种方法将一个结构体变量中的数据传递给另一个函数,有下列3种方法:用结构体变量名作参数.一般较少用这种方法.用指向结构体变量 结构体变量.结构指针变量.结构数组作为函数的参 ...

  10. C语言结构体变量和结构体数组-学习笔记(十六)

    一.结构体变量 1.结构体概念 将不同类型的数据组合成一个有机的整体即为结构体.结构体由许多组织在一起的数据项组成,这些数据项不需要属于同一类型. 2.结构体类型及结构体变量定义 (1)结构体类型声明 ...

最新文章

  1. Android Touch事件传递机制 二:单纯的(伪生命周期) 这个清楚一点
  2. CCNA实验之---单臂路由实现VLAN间路由
  3. Spring学习12之AOP2
  4. 【软件工程实践】结对项目-四则运算 “软件”之升级版
  5. Fiddler + 夜神模拟器 APP接口调试
  6. SAP 开发陷阱一箩筐(02)——无法创建客户增强的包含程序
  7. c 调用c语言dll数组,C#调用C类型dll入参为struct的问题详解
  8. 软通动力华为java机考题库_华为机考笔试刷题-java-1
  9. Zookeeper C 同步 API 介绍
  10. JAVA快速排序算法实现
  11. Dubbo-Admin 2.7 本地安装和部署
  12. HTLM5 小知识点的汇集
  13. Pro Tools安装图文教程
  14. 从今天起,我不再使用 Java Date了!
  15. JAVA中获取安装路径、运行路径、执行路径的办法
  16. 心理测试:DISC性格测试(完整版)
  17. matlab获取图片上的字,Matlab读取图片代码
  18. 基于STM32单片机的FM调频TEA5767功放收音机方案原理图设计
  19. D - Hangar Hurdles(kruskal重构树+树上倍增)
  20. 前端是什么,是干嘛的

热门文章

  1. 来个水帖:下载Dev
  2. 升级opengl和显卡驱动_opengl驱动 OpenGL版本或显卡驱动版本太低的解决方法介绍_网络-游戏圈...
  3. 电脑提示Wtautoreg.exe无法找到入口怎么解决?
  4. 街头篮球服务器一直维护,《街头篮球》2.8新版本停服维护更新公告
  5. 随机预言模型和标准模型 -2014-03-24 15:35
  6. 《RRU-Net: The Ringed Residual U-Net for Image Splicing Forgery Detection》论文阅读
  7. 计算机软件又必须包括什么,计算机系统应包括硬件和软件两个子系统,硬件和软件又必须依次分别包括______?...
  8. 怎么让背景铺满整个页面_word怎么让背景图片铺满整个页面
  9. [详细过程] | 使用tokenizers训练wordpiece模型
  10. 划重点!划重点!2022面试必刷461道大厂架构面试真题汇总+面经+简历模板