C++的结构体和函数
来源:互联网 发布:win7ipv6网络访问权限 编辑:程序博客网 时间:2024/06/08 15:53
写在前面:
开始正文之前我需要简单介绍一下自己以及这个系列博客的目的。笔者是一名在读的软件工程的研究生(2017年)一直在自学算法和语言,写博客最初的原因就是看了刘未鹏的《暗时间》,这个系列博客是为了让同样自学的人少走点弯路加快建立一个属于自己的语言体系。
为了了解结构体,我们就来猜一下它是如何来的或者说我们为什么需要结构体——现实世界的任何问题都可以用数字来描述,为了让它能读懂这些问题我们自然就需要把这些数字存储起来,一个数就可以了为什么还就出现了8中基本数据类型呢?这是考虑到计算机内存的原因,一个一位数字和一个很多位的数字当然占用的内存大小不一样,我们不能因为个列就把所有的数都在计算机里开辟一个很大的内存去存储它,于是就区分为int等,那为什么就是占4个字节的int呢?因为int能处理我们绝大数的问题。再来看bool型,因为我们经常要用到逻辑判断(问一下这是真的吗?)所以后来这个才被列为基本数据类型之一。再来看数组,我们假设有两个数字要处理,那一个叫x一个叫y就可以了,但如果我们要处理100个相同类型的数字,让你一个一个去声明定义初始化你估计还能接受,那一万个呢?所以有了数组通过下标来访问相同类型的数字(元素)。那么我们来看结构体,如果要用一些数字来描述你,显然要有名字,身高等不同的数据类型,而且我们希望只要知道你的名字(或者其他信息)我们就能知道你所有的信息,显然我们就搞出来一个叫结构体的东西来存储组合在一起的不同类型的数据。
扯了这么多其实只是为了让自学的小伙伴有一种水到渠成的感觉。
下面我们来专注于语言本身。
//结构体#include<iostream>#include<cmath>using namespace std;struct A { //声明一个名字叫做A的类型(或者叫结构体甚至对象)double X;//A里面有什么呢?你想让他有这些内容double Y;};struct B {double x;double y;};A BtoA(B b); //宇宙无敌怪异的函数声明,其实我们就是想要一个函数(或者说黑匣子) //输入时名字叫b的B类型时返回(或者说得到)一个A类型。int main(){B b = {2,5};//为了专注于语言本身我们直接初始化b A a;//是否感觉这种写法很熟悉,类似于int a对吧,就是声明了一个叫做a的A类型的量。a=BtoA(b);//调用函数cout << a.distance <<endl<< a.angle;}A BtoA(B b) {A a;//既然该函数是要返回一个A类型的东西(或者叫对象)那就先建立它。a.X = b.x * 10;a.Y = b.y * 10;return a;//实现了同比扩大10倍的操作。}
1 0
- C语言的函数和结构体
- python 调用C程序的结构体和函数
- C语言的函数指针和结构体
- python 调用C程序的结构体和函数
- C语言基础--函数和结构体
- C语言结构体及typedef关键字定义结构体别名和函数指针的应用
- C语言结构体变量和结构体变量的指针作函数参数例题
- C++__函数和结构
- c语言结构体里的函数
- C语言结构体和C 结构体的区别
- 结构体中指向函数的指针(C) && 结构体中的函数(C++)
- c/c++中如何写结构体的 构造函数 和 重载运算符?
- C语言文件编译链接的过程小问题1--extern结构体和函数
- C语言关于数组、指针、函数和结构体的其他知识
- C语言—指向函数的指针、全局变量和局部变量 、结构体、枚举
- 【C语言】使用结构体和malloc函数时的一些错误。
- C语言函数入参和返回值是结构体时的汇编分析
- C语言头文件组织与包含原则(函数指针和结构体的前项声明)
- 斯坦福机器学习笔记八
- python rsa 私钥解密
- 分针网—IT教育: 怎么轻松学习JavaScript
- EOS中如何在日志文件中打印SQL语句及参数
- core dumped 核心转储
- C++的结构体和函数
- ecplise 软件使用系列 Package Explorer
- PHP的抽象类与接口的区别和选择
- 你一定会用到的RxJava常用操作符
- Android中关闭XML注册的广播receiver方法
- mysql中的coalesce用法
- nginx源码分析——event模块
- php变量布尔值验证
- idea添加工作空间