c++入门之结构体初步

结构体实际上是一种数据结构的雏形,对结构体的灵活使用很多时候可以带来很多便利.下面给出一个关于结构体的程序:

 1 #include "iostream"
 2 # include "cmath"
 3 struct polar
 4 {
 5     double distance;
 6     double angle;
 7 };
 8 struct rect
 9 {
10     double x;
11     double y;
12 };
13 void rect_to_polar(rect*pa, polar*pb);
14 void show_polar(polar*pc);
15 int main()
16 {
17     using namespace std;
18     rect zhijiao;
19     polar ji;
20     cout << "please input the x and the y:" << endl;
21     while (cin >> zhijiao.x >> zhijiao.y)
22     {
23         rect_to_polar(&zhijiao, &ji);
24         show_polar(&ji);
25         cout << "next two nbumber(q to quit:):";
26     }
27     cout << "Done" << endl;
28     return 0;
29 }
30
31 void rect_to_polar(rect*pa, polar*pb)
32 {
33     using namespace std;
34     pb->distance = sqrt(pa->x*pa->x+ pa->y*pa->y);
35     pb->angle = atan2(pa->y, pa->x);
36 }
37
38 void show_polar(polar*pc)
39 {
40     using namespace std;
41     const double exchange = 57.29577951;
42     cout << "distance is:" << pc->distance << endl;
43     cout << "angle is:" << pc->angle* exchange << endl;
44     cout << "over" << endl;
45
46 }

上述代码的作用:将输入的一组x,y直角坐标转换为极坐标.

关于代码,总结以下:

如果通过结构体本身,采用.访问结构体元素,比如mystruct.element;但若通过结构体指针来访问元素。如mystruct->element;

2 很多时候,我们采用指针传递实参的意义在于:普通的参数传递,实际上是值拷贝过程,我们无法改变原来的变量的值,但很多时候,我们需要这么做;其次,一个大的工程,拷贝太多,容易造成内存的浪费.

原文地址:https://www.cnblogs.com/shaonianpi/p/9800909.html

时间: 2024-11-17 01:07:11

c++入门之结构体初步的相关文章

Swift入门篇-结构体

前面主要是介绍swift语言中基本类型的用法,今天给大家介绍的是swift的结构体的用法,swift中结构体的用法和其他语言的用法,还有不太一样,不过您多敲几遍,就可以理解结构体,结构体在ios开发中是灰常重要的一部分,如果您很好的掌握结构体,在后面ios开发中,会理解的更加清楚. 一:结构体声明 格式: struct 结构体名 { } 说明: 1: struct 是定义结构体的关键字 例子 /* 1:struct 是结构体的关键字 2:student 结构体名称 3:student() 创建一

C语言学习入门 (八) 结构体和枚举

结构体 它允许内部的元素是不同类型的 结构体的定义 //结构体类型: struct Person { char name[20]; //char *name; int age; float weight; }; //定义一个结构体变量,定义变量时才分配存储空间 structPerson person;    //与类型定义一起使用 struct Student {  //结构体类型与变量同时定义 char *name; int age; } stu; struct {  //省略类型,结构体变量

零基础入门之结构体字节对齐

一.字节对齐的规则: 1.一般设置的对齐方式为1,2,4字节对齐方式.结构的首地址必须是结构内最宽类型的整数倍地址:另外,结构体的每一个成员起始地址必须是自身类型大小的整数倍(需要特别注意的是windows下是这样的,但在linux的gcc编译器下最高为4字节对齐),否则在前一类型后补0:这里特别提到的是数组一定要注意,而且在一些编程的技巧中,我们可以使用数组强制字节达到对齐的目的.这在网络编程中是很常见的. 举例:比如CHAR型占用空间为1字节,则其起始位置必须可被1整除.INT为4字节,其起

【Go语言】【12】GO语言的结构体

当我第一次接触到C语言时,就对结构体投入了极大的兴趣,认为这个东西以后大有作为,后来接触Java.C++,面向对象编程中的对象进入我的视线,经过了这么多年的磨练,回过头来再看结构体依旧是那么亲切:同时从另一个角度上看结构体与面向对象中的成员对象是多么的相像 :) 一.结构体元素 结构体由关键字.结构体类型名称和具体成员构成,如下: 二.结构体初步认识 下面通过对比数组(复合类型)来了解一下结构体: 1.从存储类型来看 数组只能存储相同的类型: s := []string{"a", &q

Runtime的初步认识——结构体与类

Runtime的初步认识 Runtime的初步认识 Runtime介绍 类与结构体的关系 结构体解析 结构体的作用 Runtime介绍 学习一个东西至少要先知道它是个啥,你一定听说过"运行时是 Objective-C 的一个特色",这里的"运行时"就是指 runtime 了. runtime是在自 iOS 平台开放并基于 Objective-C 语言开发后的一个编程语言上的高级技术. 学习runtime的目的并不是为了开发,而是让你更好的理解 Objective-C

C#forUnity快速入门(连载13)-C#结构体

C# for Unity编程语言快速入门教程(连载13)_C#结构体 C#的"结构体"使用Struct 关键字来定义,是与"类"."接口"并列的编程单位.其设计的主要目的是自定义"值类型",即允许用户自定义值类型. 适用范围:   结构适合一些小型的数据结构,这些结构包含的数据以创建后不修改的数据为主.也适合数据打包,一次性定义多个变量. 结构体的限制很多.1> 除非字段声明为const .static,否则无法初始化.

IOS开发语言Swift入门连载---类和结构体

IOS开发语言Swift入门连载-类和结构体 类和结构体是人们构建代码所用的一种通用且灵活的构造体.为了在类和结构体中实现各种功能,我们必须要严格按照常量.变量以及函数所规定的语法规则来定义属性和添加方法. 与其他编程语言所不同的是,Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件.你所要做的是在一个单一文件中定义一个类或者结构体,系统将会自动生成面向其它代码的外部接口. 注意: 通常一个类 的实例被称为对象 .然而在Swift 中,类和结构体的关系要比在其他语言中更加的密切,本

swift菜鸟入门视频教程-09-类和结构体

本人自己录制的swift菜鸟入门,欢迎大家拍砖,有什么问题能够在这里留言. 主要内容: 类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复制行为 视频地址: 百度网盘:http://pan.baidu.com/s/1ntLV2kT 土豆:http://www.tudou.com/programs/view/cbJBcBofxhs/ 源代码: http://download.csdn.net/detail/mengxiangyue/75

结构体的初步了解

读过前面篇章的初学者,是不是能看出一点,小编的知识点全属于穿插法,新知识一笔带过,后面专门研究,一旦到了一定程度来个大杂烩. 今天就学基本的标题内容. 结构体的基本定义示意图: 如何初始化请看下面的例子: 第三种初始化跟第二种一样,但是有点特殊,它少了最后一种数据类型. 打印方法一样. 就有初步总结: 那么第四种方式也有点特殊,也是第二种结构体的定义: 第五种方式,就类似数组样式,它的例子如下: 打印效果如图: 这种方式或许头一次见到,要说的就是一点,那就是调用.写法是什么样的呢? 如上图所示,