IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ | 数组、结构体 -> 正文阅读

[C++知识库]C++ | 数组、结构体

目录

1.数组?

1.1数组的声明

1.2数组的初始化规则

2.结构体

2.1定义结构

2.2结构初始化

?2.3结构数组


1.数组?

? ? ? ? ? ?是一种用于存储多个同类型的值的数据格式。

例如,数组可以存储30个int类型的值,其中,每个值都存储在一个独立的数组元素中,在计算机内存中依次存储数组中的各个元素。

1.1数组的声明

声明数组的通用格式为:

typeName arrayName [arraySize];

其中 typeName 是这组元素的数据类型,arrayName 是数组名,arraySize 是元素数目,它必须是整型常数(如 10)或 const 值,也可以是常量表达式(如 3*5 )。

我们可以单独访问数组元素,方法是使用下标或索引来对元素进行编号。C++数组从0开始编号,并且使用带索引的方括号表示法来指定数组元素。例如,我们声明创建一个名为 ragnar 的 int数组,该数组有7个元素:int ragnar[7];,则ragnar[0] 是ragnar数组的第一个元素,ragnar[6]是最后一个元素(参考下图),最后一个元素的索引比数组长度小 1。

?注意:编译器不会检查使用下标是否有效,但在运行程序后,这种赋值可能引发问题,也可能导致程序异常崩溃。所以必须确保程序只使用有效的下标值。

1.2数组的初始化规则

? ? ? ? ①? C++允许只有在定义数组时,才能使用初始化,此后就不能使用了,也不能将一个数组赋给另一个数组。

int cards[4] = {3,6,8,10};   //成功初始化

int hand[4];    //创建数组,未初始化

hand[4] = {5,6,7,8}   //语法错误

hand = cards;     //语法错误

? ? ? ?②? C++可以使用下标分别给数组中的元素赋值。

int hand[4];   //声明创建hand数组
/* 使用下标给数组元素赋值 */
hand[0] = 5;
hand[1] = 6;

? ? ? ③? 如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。

int arr[10] = {1,2,3};   //部分初始化

/* 意味着arr[3]~arr[9]的值均为 0 */

/*等价于*/

int arr[10] = {1,2,3,0,0,0,0,0,0,0};

/*将数组中所有元素都初始化为0*/

int arr2[10] = {0};

2.结构体

? ? ? ?虽然数组可以存储多个元素,但所有的元素的类型都必须相同。结构是一种比数组更加灵活的数据格式。?

2.1定义结构

? ? ? 假如现在需要一种类型应存储产品的名称、容量和售价,那么我们就可以定义结构来满足需求:

struct product
{
  
    char name[20];    //名称
    flaot volume;     //容量
    double price;     //售价

};

?关键字?struct 声明,这段代码定义的是一个结构,标识符product 是结构的名称。

? ? ? ? ? ? ?name、volume、price 是结构体的成员,由大括号括起来,最后以分号结束结构声明。

2.2结构初始化

? ? ?和数组一样,使用由逗号分隔值列表?,并将这些值用花括号括起来。

product guest = 
{
    "Glorious" ,  //产品名
    1.88,         //容量
    29.99          //价格

};

/*也可以将他们全部放在一行中*/

product guest = {"Glorious" ,1.88,29.99};

?2.3结构数组

? ? ?也可以创建元素为结构的数组

? ? ?例如,要创建一个包含一个10个? product? 结构的数组,可以这样做:

product gifts[10];

?这样便定义了一个product 结构数组,其中的每个元素(如 gifts[0] 或 gifts[9])都是 product 的对象,可以与成员运算符一起使用:

cin   >>   gifts[0].volume;

cout  <<    gifts[8].name;

?注意:gifts本身是一个数组,而不是结构,所以像gifts.price 这样的表述是错误的。

以下代码是一个运用结构数组的简例:

#include<iostream>
using namespace std;

struct Person {
	char name[20];   //姓名
	char sex[4];     //性别
	int age;         //年龄
};
int main() {
	/*初始化*/
	Person person[2] = {
		{"张三","男",20},
		{"李四","女",19}
	};
	for (int i = 0; i < 2; i++) {
		cout << "第 " << i + 1 << " 个人的信息:" << endl;
		cout << "姓名:" << person[i].name << endl;
		cout << "性别:" << person[i].sex << endl;
		cout << "年龄:" << person[i].age << endl;
		cout << "----------------------------------" << endl;
	}
	system("pause");
	return 0;
}

?运行结果如下:

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:10:21  更:2021-08-21 15:12:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:39:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码