主要理解一下两点:

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. Java中Asm包有什么用?

    ASM能做什么 我们都知道,一般情况下,Class文件是通过javac编译器产生的,然后通过类加载器加载到虚拟机内,再通过执行引擎去执行. 现在我们可以通过ASM的API直接生成符合Java虚拟机规范 ...

  2. VsCode 使用习惯设置(备份)

    { "window.menuBarVisibility": "toggle", "workbench.statusBar.visible": ...

  3. 转:探讨JS合并两个数组的方法

    我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况. 比如: var a = [1,2,3]; var b = [4,5,6]; 有两个数组a.b,需求是将两个数组合并成一个.方法如下: ...

  4. Extjs动态增删组件

    在项目中遇到要动态的增加删除一个组件,于是就查找资料,实现了下面的效果. Ext.onReady(function(){ // Ext.Msg.alert("提示","h ...

  5. avalon2学习教程08插入移除操作

    本节介绍的ms-if指令与ms-visible很相似,都是让某元素"看不见",不同的是ms-visible是通过CSS实现,ms-if是通过移除插入节点实现. ms-if的用法与1 ...

  6. [Apache]网站页面静态化与Apache调优(图)

    ---------------------------------------------------------------------------------------------------- ...

  7. 局部变量and全局变量

    局部变量 <1>什么是局部变量 如下图所示: <2>小总结 局部变量,就是在函数内部定义的变量 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响 局部变量的作 ...

  8. 构建BSP (boardsupport packet)

    由于移植期间遇到较多头文件包含及常量定义问题,故在此总结如下: 常量定义一般涉及到寄存器定义.寄存器配置常量定义,寄存器配置常量一般在驱动目录下自定义,所以如果编译过程中出现常量未定义的情况一般是属于 ...

  9. 2018面向对象程序设计(Java) 第2周学习指导及要求

    2018面向对象程序设计(Java) 第2周学习指导及要求(2018.9.3-2018.9.9)   学习目标 适应老师教学方式,能按照自主学习要求完成本周理论知识学习: 掌握Java Applica ...

  10. ssh架构之hibernate(二)进阶学习

    1.JPA入门 JPA的认识:JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中Java持久层AP ...