`
linleizi
  • 浏览: 230655 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

C++数据结构学习笔记七

 
阅读更多
C++数据结构学习笔记七
一个数据结构是组合到同一定义下的一组不同类型的数据,各个数据类型的长度可能不同。
形式是:
"struct model_name {
type1 element1;
type2 element2;
type3 element3;
.
.
} object_name;
model_name是结构类型的模块名称。Object_name为可选参数,是一个或多个具体结构对象的标识。"
例如:
"struct products {
char name [3];
float price;
};
products apple;
products orange, melon;
定义了结构模块products,它包含两个域:name 和 price,每一个域是不同的数据类型。
声明了3个该类型的对象:apple, orange 和 melon。
另一种声明方式:
struct pooducts {
char name [30];
float price;
} apple, orange, melon;"
"操作对象的域:
apple.name
apple.price
orange.name
orange.price
melon.name
melon.price"
例子:
"#include <iostream.h>
#include <string.h>
#include <stdlib.h>
struct movies_t {
char title [50];
int year;
} mine, yours;
void printmovie (movies_t movie);

int main () {
char buffer [50];
strcpy (mine.title, ""2001 A Space 0dyssey"");
mine.year = 1968;
cout << Enter title: "";
cin.getline (yours.title, 50);
cout << ""Enter year: "";
cin.getline (buffer, 50);
yours.year = atoi (buffer);
cout << ""My favourite movie is:\n"";
printmovie (mine);
cout << ""And yours:\n"";
printmovie (yours);
return 0;
}

void printmovie (movies_t movie) {
cout << movie.title;
cout << ""("" << movie.year << "")\n"";
}
输出结果:
Enter title: Alien
Enter year: 1979
My favourite movie is:
2001 A Space Odyssey (1968)
And yours:
Alien (1979)"
结构的重要优点之一就是我们既可以单独引用它的元素,也可以引用整个结构数据块。
结构数组例子:
"#include <iostream.h>
#include <stdlib.h>
#define N_MOVIES 5

struct movies_t {
char title [50];
int year;
} films [N_MOVIES];

void printmovie (movies_t movie);
int main () {
char buffer [50];
int n;
for (n = 0; n < N_MOVIES; n++) {
cout << ""Enter title: "";
cin.getline (films[n].title, 50);
cout << ""Enter year: "";
cin.getline (buffer, 50);
films[n].year = atoi (buffer);
}
cout << ""\nYou have entered these movies:\n"";
for (n = 0; n < N_MOVIES; n++)
printmovie (films[n]);
return 0;
}

void printmovie (movies_t movie) {
cout << movie.title;
cout << ""("" << movie.year << "")\n"";
}
输出结果:Enter title: Alien
Enter year: 1979
Enter title: Blade Runner
Enter year: 1982
Enter title: Matrix
Enter year: 1999
Enter title: Rear Window
Enter year: 1954
Enter title: Taxi Driver
Enter year: 1975

You have entered these movies:
Alien (1979)
Blade Runner (1982)
Matrix (1999)
Rear Window (1954)
Taxi Driver (1975)"
结构指针
"指针必须被声明为一个指向结构的指针:
struct movies_t {
char title [50];
int year;
};
movies_t amovie;
movies_t * pmovie;
这里 amovie 是一个结构类型movies_t 的对象,而pmovie 是一个指向结构类型movies_t 的对象的指针。所以,同基本数据类型一样,以下表达式正确的:
pmovie = &amovie; "
例子:
"#include <iostream.h>
#include <stdlib.h>

struct movies_t {
char title [50];
int year;
};

int main () {
char buffer[50];

movies_t amovie;
movies_t * pmovie;
pmovie = & amovie;

cout << ""Enter title: "";
cin.getline (pmovie->title, 50);
cout << ""Enter year: "";
cin.getline (buffer, 50);
pmovie->year = atoi (buffer);

cout << ""\nYou have entered: \n"";
cout << pmovie->title;
cout << ""("" << pmovie->year << "")\n"";

return 0;
}
输出结果:Enter title: Matrix
Enter year: 1999

You have entered:
Matrix (1999)"
上面的代码中引入了一个重要的操作符:->。这是一个引用操作符,常与结构或类的指针一起使用,以便引用其中的成员元素,这样就避免使用很多括号。例如,我们用:
pmovie->title
来代替:
(*pmovie).title
结构嵌套
"结构可以嵌套使用,即一个结构的元素本身又可以是另一个结构类型。例如:
struct movies_t {
char title [50];
int year;
}

struct friends_t {
char name [50];
char email [50];
movies_t favourite_movie;
} charlie, maria;
friends_t * pfriends = &charlie;
可以使用下面表达式:
charlie.name
maria.favourite_movie,title
charlie.favourite_movie.year
pfriends->favourite_movie.year"
分享到:
评论

相关推荐

    数据结构与算法分析学习笔记(C++)chm

    数据结构与算法分析学习笔记(C++)chm 排版很好,代码直接能用,大牛写的,模板运用的很好

    数据结构与算法分析学习笔记(C++)

    数据结构与算法分析学习笔记(C++),里面有很好的数据结构相关的代码,可以直接拷贝运行,chm格式,可以当工具使用

    C++数据结构与算法学习笔记

    ### C++数据结构与算法学习笔记 #### 第1章 数据结构和算法 ##### 主要目的 本章的主要目的是为了帮助读者构建一个扎实的基础,以便更好地理解和应用数据结构与算法。具体来说,它包括以下几个方面: 1. **学习...

    c++学习笔记精华版

    ### C++ 学习笔记精华版 #### 一、C++ 语言概述 **1、历史背景** - **C++ 的江湖地位** - Java、C、C++、Python、C# 是当前主流的编程语言之一,而 C++ 在这些语言中以其高效性和灵活性著称。 - **C++ 之父 ...

    数据结构高分笔记part1

    7. **实际应用**:最后,笔记可能会将这些理论知识与实际编程语言(如C++、Java或Python)结合,通过示例代码解释如何实现这些数据结构和算法。 由于笔记名为“数据结构高分笔记”,它很可能会重点强调考试中的常见...

    数据结构学习笔记(c++)

    在"数据结构学习笔记(c++)"中,我们可以深入理解C++如何被用来构建和操作这些抽象的数据结构。 1. **数组**:数组是最基本的数据结构,它允许存储固定数量的相同类型元素。在C++中,可以声明一维、二维或多维数组。...

    C++ 学习笔记 整理

    这份"C++学习笔记"涵盖了C++的基础到高级概念,旨在帮助初学者和有一定经验的程序员深入理解并掌握C++。 在C++的学习过程中,以下几个关键知识点是不可或缺的: 1. **基础语法**:C++起源于C语言,因此它保留了...

    数据结构C++ 笔记讲义 青岛大学王卓

    本文是青岛大学王卓教授编写的《数据结构C++ 笔记讲义》的内容概要。文档详细地介绍了数据结构的基本概念、逻辑结构、物理存储以及各种基本数据结构的实现方式和应用。以下是从提供的内容中提炼出来的知识点。 一、...

    C++ Prime学习笔记

    【C++ Primer 学习笔记】深入理解C++的基础概念 C++ Primer 是一本广泛使用的C++编程教材,本系列学习笔记旨在探讨那些容易被忽视或引起误解的C++知识点,适合已经具备一定C++基础知识的读者。我们将从C++的基础...

    Visual C++程序设计学习笔记

    《Visual C++程序设计学习笔记》是一份深入探讨VC++编程技术的综合资料,涵盖了从基础知识到实际系统开发的广泛内容。Visual C++是Microsoft公司推出的一种强大的集成开发环境,它集成了C++编译器、调试器以及MFC...

    数据结构学习笔记(附超详细代码实现),数据结构c/c++代码与原理讲解

    数据结构学习笔记(附超详细代码实现),数据结构c/c++代码与原理讲解

    Visual C++程序设计学习笔记.rar

    《Visual C++程序设计学习笔记》是一份深入探讨C++编程在Microsoft Visual Studio环境下的实践指南。这份笔记涵盖了从基础知识到高级技术的广泛内容,旨在帮助读者熟练掌握Visual C++的使用,提升软件开发能力。 一...

    数据结构笔记(C++版)

    数据结构是计算机科学中的核心概念,它涉及到如何在内存中有效地组织...通过这份“数据结构笔记(C++版)”,学习者可以系统地掌握C++中数据结构的基本概念、实现方式以及应用技巧,为编写高效且优化的代码打下坚实基础。

    Visual C++程序设计学习笔记(1-12 源码)

    本资源包含的是Visual C++程序设计的学习笔记,涵盖了从基础到进阶的12个章节的源代码,对于学习和理解C++编程,特别是使用Visual C++环境编程,具有极高的参考价值。 首先,我们来详细探讨一下Visual C++的关键...

    【C++学习笔记】一份详细的学习笔记,让你轻松掌握C++编程!

    【C++学习笔记】这份详尽的资源是为那些希望深入了解C++编程语言的人们精心准备的。C++是一种强大的、通用的编程语言,它的设计理念是面向对象,同时支持过程化编程,使得它在系统软件、应用软件、游戏开发、设备...

    C++数组的学习笔记(入门).docx

    C++数组的学习笔记(入门) C++数组是一种重要的数据结构,数组是相同类型元素的集合。在C++中,数组可以分为一维数组、二维数组和字符数组等。本文将对C++数组的定义、初始化和引用进行详细的介绍。 一维数组 一...

    C++学习笔记.doc

    【C++ 学习笔记】深入理解编程与C++基础 C++是一种强大的、面向对象的编程语言,广泛应用于系统软件、游戏开发、嵌入式系统以及许多高性能应用。学习C++不仅仅是掌握语法,更重要的是理解编程的核心概念,以便更好...

Global site tag (gtag.js) - Google Analytics