主要理解一下两点:

1.在C和C++中struct的常规使用。

2.在C++中struct和class基本一致,除了在访问控制权限方面,即:

    通过struct关键字实现的类,属性,函数默认的访问权限为public;
    通过class关键字实现的类,属性,函数默认的访问权限为private。

下面举例说明:

#include<iostream>
using namespace std; struct point{
int x;
int y;
int fun(point &p) //在C++中,完全可以在struct中使用函数
{
p.x = 100;
p.y = 200;
return 0;
}
point(int x, int y): x(x) , y(y){ } //等同于C++中的class
};
struct teacher{
int age;
char *name;
};
int main(void){
point p(0,0);
p.x = 1;
p.y = 2;
point p1= p;
cout<<"p1.x="<<p1.x<<endl;
cout<<"p1.y="<<p1.y<<endl; point *p3 = &p1;
p3->x = 10;
p3->y = 20;
cout<<"p3->x="<<p3->x<<endl;
cout<<"p3->y="<<p3->y<<endl; p3->fun(p1);
cout<<"p3->x="<<p3->x<<endl;
cout<<"p3->y="<<p3->y<<endl; point p4(1000,2000);
cout<<"p4.x="<<p4.x<<endl;
cout<<"p4.y="<<p4.y<<endl; cout<<"================struct在C中用法================"<<endl;
cout<<"before define struct teacher,sizeof(teacher)="<<sizeof(teacher)<<endl; struct teacher t1; //定义时比较繁琐,需要添加struct关键字,也可以使用typedef声明,此处就不需要加struct关键字。同样在C++中可以直接不加struct关键字 cout<<"after define struct teacher,sizeof(teacher)="<<sizeof(teacher)<<endl; t1.age = 30;
t1.name = "zhangsan";
cout<<"t1.age="<<t1.age<<endl;
cout<<"t1.name="<<t1.name<<endl; struct teacher *t2 = &t1;
t2->age = 35;
t2->name = "lisi";
cout<<"t2->age="<<t2->age<<endl;
cout<<"t2->name="<<t2->name<<endl; system("pause");
return 0;
}

  输出结果:

struct在C和C++中的使用总结的更多相关文章

  1. python struct.pack() 二进制文件,文件中打包二进制数据的存储与解析

    学习Python的过程中,遇到一个问题,在<Python学习手册>(也就是<learning python>)中,元组.文件及其他章节里,关于处理二进制文件里,有这么一段代码的 ...

  2. C语言 Struct 结构体在 Java 中的体现

    大一整个学期完成了 C 语言的学习,大二就进入了Java 的学习. 和C语言一样,我们都会尝试写一个小小的学生管理系统什么的,学习过 C 语言同学知道,在管理系统中 Struct 结构体是个很好用的东 ...

  3. java从c struct传来的字节数组中取值

    public int getInt(byte[] array,int index) { return (array[index]  & 0xff)  | (array[index + 1] & ...

  4. c++中的struct

    c++中的struct不在是c中的struct,不仅仅是一个多个数据类型的结构体了.c++中的struct可以具有成员函数(c语言中是不可以的),c++ struct还可以继承class等等.同时c+ ...

  5. python中struct模块及packet和unpacket

    转自:http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html 我们知道python只定义了6种数据类型,字符串,整数,浮点数,列表,元组 ...

  6. c#中struct和class的区别 z

    1.struct 是值类型,class是对象类型 2.struct 不能被继承,class可以被继承 3.struct 默认的访问权限是public,而class默认的访问权限是private. 4. ...

  7. c#中struct和class的区别

    1.struct 是值类型,class是对象类型 2.struct 不能被继承,class可以被继承 3.struct 默认的访问权限是public,而class默认的访问权限是private. 4. ...

  8. Ecto中的changeset,schema,struct,map

    概要 schema changeset struct map 总结 概要 Ecto 中, 对数据库的操作中经常用到 4 个类型: schema changeset struct map 在 Ecto ...

  9. Python的功能模块[1] -> struct -> struct 在网络编程中的使用

    struct模块 / struct Module 在网络编程中,利用 socket 进行通信时,常常会用到 struct 模块,在网络通信中,大多数传递的数据以二进制流(binary data)存在. ...

随机推荐

  1. [AS3]as3中splice和slice的用法介绍说明

    splice 删除数组一段连续的元素,返回被删除的元素数组 var arr:Array = ["a","b","c","d&quo ...

  2. 构建模式--Adapter模式(JAVA)

    适配器模式: 适配器就相当于我们的转接头,比如手机充电器插头(小米和华为的手机充电器不能共用,这时候就可以给华为的充电器按一个转接头,就可以给小米手机充电). 同理,当一个类(充电器 HuaweiCh ...

  3. easyui datagrid取消点击行的选中事件

    http://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&theme=material&dir=ltr&pitem= ...

  4. Others-常用数学符号大全

    常用数学符号读法大全 大写 小写 英文注音 国际音标注音 中文注音 Α α alpha alfa 阿耳法 Β β beta beta 贝塔 Γ γ gamma gamma 伽马 Δ δ deta de ...

  5. P12, cer, provisioning profile

    p12,本地私钥(实际上证书和私钥可以一起导出成p12,这里我们仅指私钥) cer,证书,即苹果签名后的公钥 provisioning profile描述文件 一个证书对应一个私钥,也就是本地的p12 ...

  6. TCP/IP协议分层详解

    TCP/IP 和 ISO/OSI ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO) ...

  7. su: cannot set user id: Resource temporarily unavailable问题解决

    操作环境 SuSE11sp1 问题现象 执行su - test命令切换失败,提示"su: cannot set user id: Resource temporarily unavailab ...

  8. SQL Server 利用Profiler观察执行计划是否重用时SP:Cachemiss,SP:CacheInsert以及SP:CacheHit的含义

    本文出处:http://www.cnblogs.com/wy123/p/6913055.html 执行计划的缓存与重用 在通过SQL Profile观察一个SQL语句或者存储过程是否有可用的缓存执行计 ...

  9. Hibernate Validator实践之一 入门篇

    在后台的业务逻辑中,对数据值的校验在各层都存在(展示层,业务层,数据访问层等),并且各层校验的规则又不尽相同,如下图所示 注:该图片来自于Hibernate Validator官网 在各层中重复的校验 ...

  10. C++ 与 CDC相关的知识,点滴总结

    hdc = GetDC (hwnd) ; GetDc函数:用于获得hWnd参数所指定窗口的客户区域的一个设备环境. 所获得的设备环境可以是通用.类或者私有类型,具体由指定窗口的类风格决定.对于通用设备 ...