`
yunchow
  • 浏览: 324352 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

数组本质

    博客分类:
  • C++
阅读更多
数组是一片连续的内存空间,定义时一般指明大小和类型,这样编译器才能给其分配空间.
把数组名当数组用的时候,它仅仅是一个地址,可通过sizeof()函数来进行测试得到.
函数的形参如果是一个数组,在函数中将无法知道有多少个元素.所以在函数的形参是数组的时候
我们会再传一个参数,此数组的元素的个数,这样才能很好的工作,
#include <iostream.h>
using namespace std;

double max(double score[]/*等价于double *s(指针)*/, int n )
{
	cout << "sizeof(score) = " << sizeof(score) << ednl; //输出4,传过来的是地址.
	doublc mv = score[0];
	for(int i=1;i<n/*n是传过来的,因为函数本身将无法知道n的大小*/;i++)
	{
		/* 比较出最大值*/
	}
	return mv;
}
int main()
{
	double a[5] = {66,77,88,33,44};
	cout << "sizeof(a) = " << sizeof(a) << endl; //将输出48
	//这个地方传过去的是数组a的首地址,也就是指针
	//指针只能存地址,地址也只能存到指针里去
	cout << "The max Value is : " << max(a) << endl;
	return 0;
}

分享到:
评论

相关推荐

    一维数组PPT

    数组是具有相同类型的一组数据的集合。例如,球类的集合——足球、篮球、乒乓球等;...一维数组实质上是一组相同类型数据的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以用这种类型的数据。

    对C#中多维数组,进行学习.实现多维数组的输入和输出

    在C#中,多维数组本质上是一组一维数组的集合,可以是二维、三维,甚至是更高维度。最常见的形式是二维数组,它通常用于表示表格或矩阵。 创建多维数组的基本语法如下: ```csharp int[,] multiDimArray = new int...

    二维数组与指针关系剖析

    二维数组本质上是一个一维数组的数组,可以理解为一个表格,其中每个元素又是一个一维数组。本文将深入探讨二维数组与指针之间的紧密联系,以及如何通过指针实现二维数组与一维数组之间的转换。 首先,我们需要理解...

    javascript构造二维数组

    由于二维数组本质上是一维数组的数组,所以我们可以使用一维数组的方法如`concat()`, `slice()`, `filter()`, `reduce()`等对二维数组进行操作,但需要注意,这些操作通常只作用于最外层数组。 8. **扁平化二维...

    C++创建动态数组

    首先,定义了一个指向指针的指针`int **arr`,这是因为二维数组本质上是一个指向一维数组的指针。然后,通过用户输入获取数组的行数`n`和列数`m`。 接下来,使用`new`运算符为每一行分配内存。`arr = new int*[n];`...

    数组与指针详解

    4. 多维数组与指针:多维数组实质上是数组的数组,例如 `int arr[3][4]` 可以看作是3个长度为4的数组组成的数组。在二维数组中,数组名也可以看作指向一维数组的指针。 四、数组与指针的区别 1. 内存分配:数组在...

    实现字节数组同c中的字符数组一样好用(6KB)...

    首先,我们要理解C语言中的字符数组本质上是字节序列,可以方便地处理单个字符和字符串。在VB中,我们可以使用`Byte()`数组来模拟这种行为。`Byte()`数组可以存储0到255之间的整数值,这正是ASCII字符集的范围,因此...

    调用形参为二维数组的函数

    动态创建的二维数组实质上是一个指针数组,而函数的形参通常是期望接收指向一维数组的指针。通过正确传递这些指针,我们可以在函数中有效地操作动态二维数组。在使用完毕后,别忘了释放分配的内存,以防止内存泄漏。

    二维动态数组的用法

    由于二维数组本质上是一个指针的数组,所以我们可以使用两个下标来访问元素,第一个下标表示行,第二个下标表示列: ```c void assignValue(int **array, int n, int m) { for (int i = 0; i ; i++) { for (int j...

    Java二维数组实现简单Map

    在Java中,二维数组本质上是一个数组的数组,它由多个一维数组组成,形成一个矩阵。我们可以将其视为一种表格,其中每一行代表一个键,每一列代表对应的值。例如,我们可以定义一个int[][] map来存储整数键和整数值...

    c语言二维数组初始化及示例代码.zip

    二维数组本质上是一个数组的数组,即数组中的每个元素都是一个数组。它可以用来表示表格、矩阵等具有两个维度的数据结构。二维数组由行和列组成,通常我们使用两个下标来访问二维数组中的元素,第一个下标表示行号,...

    matlab 元胞数组. matlab 元胞数组

    元胞数组本质上是一个由独立单元组成的多维数组,每个单元(称为元胞)可以容纳任意类型的数据,如数值、字符串、甚至其他数组。这种特性使得元胞数组在处理复杂数据集时具有很大的优势。 1. **创建元胞数组** ...

    很好很实用的C语言课件 二维数组

    二维数组实质上是一组一维数组的集合,每个一维数组又包含多个元素。这种数据结构允许我们按照行和列的方式访问和操作数据。 在C语言中声明二维数组的基本语法如下: ```c 类型名 数组名[行大小][列大小]; ``` 例如...

    树状数组 模版

    树状数组本质上是一个数组,通过巧妙的设计实现了对数组元素的快速访问和更新。它主要用于处理一类涉及频繁查询和修改区间和的问题。树状数组的核心在于利用二进制表示中的低位1的特性来建立数组间的联系,从而达到...

    JavaSE进阶数组讲义

    二维数组本质上是一维数组的数组,可以理解为表格形式的数据结构。声明二维数组的格式通常为`类型[][] 变量名`,如`int[][] matrix`。创建二维数组时,需要为每一行分配空间,例如`int[][] matrix = new int[3][4];`...

    基于 C 实现的环形数组(环形数组的实现)

    环形数组本质上是线性数组的一种扩展,其长度固定,当数组满时,新元素将覆盖旧元素,而不是扩展数组。数组中的索引被视为模运算的结果,使得数组看起来像一个无限循环。例如,如果数组大小为N,索引i超出范围,那么...

    什么是树状数组以及学习树状数组的意义是什么

    1. **定义**:树状数组本质上是一个一维数组,通过对元素的特定索引方式来存储数据,使得对区间和的查询和单点更新的操作可以在\(O(\log n)\)的时间复杂度内完成。 2. **适用范围**:树状数组特别适合于处理频繁的...

    树状数组一个数组的抽象表示.docx

    树状数组本质上是对原始数组的一种抽象表示。具体来说,每个树状数组中的元素代表的是原始数组中若干个连续元素的和。为了能够高效地完成更新和查询操作,树状数组采用了一种特殊的二进制编码来表示索引。这种索引...

Global site tag (gtag.js) - Google Analytics