结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。
定义结构体使用struct修饰符,例如:
struct test { float a; int b; };
上面的代码就定义了一个名为test的结构体,它的数据类型就是test,它包含两个成员a和b,成员a的数据类型为浮点型,成员b的数据类型为整型。 由于结构体本身就是自定义的数据类型,定义结构体变量的方法和定义普通变量的方法一样。 test pn1; 这样就定义了一test结构体数据类型的结构体变量pn1,结构体成员的访问通过点操作符进行, pn1.a=10 就对结构体变量pn1的成员a进行了赋值操作, 注意:结构体声明的时候本身不占用任何内存空间,只有当你用你定义的结构体类型定义结构体变量的时候计算机才会分配内存。
结构体,同样是可以定义指针的,那么结构体指针就叫做结构指针。 结构指针通过->符号来访问成员,下面我们就以上所说的看一个完整的例子:
#include<iostream>
#include<string>
using namespace std;
struct test//定义一个名为test的结构体
{ int a;//定义结构体成员a
int b;//定义结构体成员b };
void main() { test pn1;//定义结构体变量pn1
test pn2;//定义结构体变量pn2
pn2.a=10;//通过成员操作符.给结构体变量pn2中的成员a赋值
pn2.b=3;//通过成员操作符.给结构体变量pn2中的成员b赋值
pn1=pn2;//把pn2中所有的成员值复制给具有相同结构的结构体变量pn1
cout<<pn1.a<<"|"<<pn1.b<<endl;
cout<<pn2.a<<"|"<<pn2.b<<endl;
test *point;//定义结构指针
point=&pn2;//指针指向结构体变量pn2的内存地址
cout<<pn2.a<<"|"<<pn2.b<<endl;
point->a=99;//通过结构指针修改结构体变量pn2成员a的值
cout<<pn2.a<<"|"<<pn2.b<<endl;
cout<<point->a<<"|"<<point->b<<endl;
cin.get(); }
分享到:
相关推荐
用于在C++结构体和json/xml之间互相转换, bson在xbson中支持。 只需要头文件, 无需编译库文件。 具体可以参考example的例子
C++结构体参数与结构体指针参数区别Demo(资源包括C++源程序和编译好的exe文件)
C++结构体简单例子(资源包括C++源程序和编译好的exe文件)
在写C#TCP通信程序时,发送数据时,只能发送byte数组,处理起来比较麻烦不说,如果是和c++等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把...
c++结构体数组学生管理系统
代码说明: http://blog.csdn.net/catxl313/article/details/25434275
c、c++如果在日志中查看某个结构字段信息,只能通过printf逐个格式化,工作量大; 该dll库通知pdb文件分析结构体字段位置,并根据类型格式一个完整字符串,极大降低了开发者工作量。 1、可通过cdump\Release\...
c++ 结构体
(1)C/C++语言的结构体支持对其中的基本成员变量按位拆分; (2)拆分的位数应该是合乎逻辑的,应仍然可以组合为基本成员变量;
c/c++ 中如果要打印结构体,不需要再复杂的输入n行printf了,一行就搞定 char *pMsg = CLoadDumpDll::Dump("MyStruct",&my); 时间有限,目前还只是支持基本类型的打印,哪些类型,参考test .cpp。
把c++的结构体、数据类型、函数定义转换成对应的c#表达,很强大。
关于C/C++的结构体说明,一些常用的插入,删除方法
详细介绍了C++结构体的用法,一目了然,可供初学者参考学习。
它主要解决C++中类、结构体写ascii码文件时因结构体不同而不断重复写代码的问题。让应用跟专注于业务,而不必关心底层写文件的操作。提高代码的可读性,稳定性。 到CSDN我的博客中<C++ 结构体 写文件 STF架构>看...
C/C++中关于结构体的详细介绍,其中包括结构体作为函数体变量进行传递的相关介绍。
结构体 较简单 把复杂变简单 c++ 结构体与一般变量 C初学者
网络通信中C、C++结构体转C#结构体
C++结构体作为参数Demo(资源包括C++源代码和编译好的exe文件)
NULL 博文链接:https://zcw-java.iteye.com/blog/1902909
以下小编就为大家介绍一道超经典的关于C++结构体的题目。需要的朋友可以过来参考下