数组和指针的区别

目录:

Anonim

主要区别 数组和指针之间是一个 数组是一种数据结构,用于存储相同数据类型的元素的集合,而指针是一个变量,用于保存计算机内存中另一个变量的地址。

数组和指针是 C 和 C++ 等编程语言中使用的两个概念。数组是一组数据,其中包含固定数量的相同数据类型的值。例如,要存储 10 个学生的分数,程序员可以创建一个可以存储 10 个整数的数组。另一方面,指针是保存另一个变量地址的变量。指针有助于访问内存和操作内存地址。

数组、指针

什么是数组

数组是一种数据结构,它存储固定数量的相同类型的元素。数组的所有元素都在连续的内存位置。

图 1:阵列

假设您需要存储 50 个整数的值。可以为每个整数创建变量,但这既困难又耗时。可以使用数组来解决这个问题。

整数[50];

上面的语句将分配一个名为 numbers 的数组,该数组可以存储五十个整数。可以使用索引评估数组的特定元素。起始索引为 0。由于数组中有 50 个元素,因此最后一个元素的索引为 49。

数字[1] = 30;

上面的语句将值 30 分配给 1英石 数字数组的索引。

例如,双重平均[10];将创建一个名为 average 的数组。它可以存储 10 个双精度值。

数组更容易创建,也更容易访问元素。另一方面,数组具有固定大小。如果数组大小为 10,则不能用于存储 20 个元素。换句话说,数组的内存分配是静态的。

什么是指针

变量是存储值的内存位置。每个内存位置都有一个地址来标识它。

图 2:指针

指针是存储另一个变量地址的变量。在存储变量地址之前声明指针。星号 * 用于声明一个指针。

int *ptr;

ptr 是指向整数变量的指针。

双 *ptr1;

ptr1 是一个指向双变量的指针。请参考以下代码。

图 3:使用指针编程

变量“a”包含值 20。ptr 是一个指向整数的指针。在第 8 行,ptr 被分配了变量 a 的地址。现在 ptr 指向 a。因此,打印 ptr 指向的值将给出 a 的值。

如果没有要分配的地址,则可以为指针分配一个 NULL 值。这种类型的指针称为空指针。

int *ptr = NULL;

数组与指针的关系

请参考以下程序。

图 4:带指针的数组

有一个名为 arr 的数组。它包含 5 个整数。 ptr 是一个指向整数的指针。在第 8 行,将 arr 分配给 ptr。因此,ptr 指向数组的第 0 个索引元素。打印ptr的值会显示0的值 索引元素。它是 10。

数组和指针的区别

定义

数组是一种数据结构,由一组元素组成,每个元素都由数组索引标识。指针是一种编程语言对象,用于存储位于计算机内存中的另一个值的内存地址。

基础

数组指的是一组数据元素,而指针是指向某个其他内存位置的变量。

句法

数组语法——数据类型 arrayName [数据类型];

指针语法——数据类型 * variable_name;

用法

虽然数组可用于分配固定大小的内存(静态内存),但指针可用于动态内存分配。

结论

数组和指针这两个术语是两个编程概念。数组和指针的区别在于,数组是存储相同数据类型元素集合的数据结构,而指针是保存计算机内存中另一个变量地址的变量。

参考:

1. “C 中的数组” Www.tutorialspoint.com,教程点,可在此处.2。 “C 中的指针。” www.tutorialspoint.com,教程点,可在此处获得。

图片提供:

1. Pluke 撰写的“CPT-programming-array” – 自己的作品 (CC0),来自 Commons Wikimedia2。 “指针”作者 此文件由用户:SvenTranslation 自己的作品(CC BY-SA 3.0)通过 Commons Wikimedia 制作

数组和指针的区别