C语言教程
+ -

C语言 数组

2019-09-09 16 0

数组是一种数据结构,可以存储相同类型的元素的固定大小的顺序集合。

所有数组均包含连续的内存位置,最低地址对应于第一个元素,最高地址对应于最后一个元素。
数组

声明数组

要在C中声明数组,程序员可以指定元素的类型和数组所需的元素数量,如下所示:

 type arrayName [ arraySize ];

这称为单维数组, arraySize 必须是一个大于零的整数常量,并且 type 可以是任何有效的C数据类型。如要声明一个名为double的 balance的10元素数组,请使用以下语句:

double balance[10];

这里 balance 是一个可变数组,足以容纳10个double。

初始化数组

您可以在C中一个接一个地初始化数组,也可以使用单个语句来初始化数组,如下所示:

double balance[5]={1000.0, 2.0, 3.4, 7.0, 50.0};

大括号{}之间的值数不能大于我们为方括号[]之间的数组声明的元素数。

如果省略数组的大小,则会创建一个大小足以容纳初始化的数组。

double balance[]={1000.0, 2.0, 3.4, 7.0, 50.0};

您将创建与上一个示例完全相同的数组。以下是分配数组的单个元素的示例-

 balance[4]=50.0;

上面的语句为数组中的第5个元素分配值50.0。所有数组的第一个元素的索引均为0,也称为基本索引,而数组的最后一个索引为数组的总大小减去1。下面显示的是我们上面讨论的数组的图形表示
1605535849381

访问数组元素

通过索引数组名称来访问元素。这是通过将元素的索引放在数组名称后面的方括号内来完成的。如-

double salary=balance[9];

上面的语句将从数组中获取第10 th 元素,并将其值分配给salary变量。以下示例显示如何使用上述所有三个概念。声明,赋值和访问数组.

#include <stdio.h>

int main () {

   int n[ 10 ]; /* n is an array of 10 integers */
   int i,j;

   /* initialize elements of array n to 0 */
   for ( i=0; i < 10; i++ ) {
      n[ i ]=i + 100; /* set element at location i to i + 100 */
   }

   /* output each array element's value */
   for (j=0; j < 10; j++ ) {
      printf("Element[%d]=%d\n", j, n[j] );
   }

   return 0;
}

编译并执行上述代码后,将产生以下输出:

Element[0]=100
Element[1]=101
Element[2]=102
Element[3]=103
Element[4]=104
Element[5]=105
Element[6]=106
Element[7]=107
Element[8]=108
Element[9]=109

更多数组介绍

数组对C很重要,应该多加注意。 C程序员应该清楚以下与数组有关的重要概念:

No. Concept 描述
1 多维数组 C支持多维数组。多维数组的最简单形式是二维数组。
2 数组函数传递 您可以通过指定不带索引的数组名称,将指向数组的指针传递给该函数。
3 从函数中返加数组 C允许函数返回数组。
4 数组指针 您可以通过简单地指定数组名称而无需任何索引来生成指向数组第一个元素的指针。

0 篇笔记 写笔记

C++ 指针vs数组
指针和数组是密切相关的。事实上,指针和数组在很多情况下是可以互换的。例如,一个指向数组开头的指针,可以通过使用指针的算术运算或数组索引来访问数组。请看下面的程序:#include using namespace std;const int MAX = 3;int ma......
Perl 引用
引用就是指针,Perl 引用是一个标量类型可以指向变量、数组、哈希表(也叫关联数组)甚至子程序,可以应用在程序的任何地方。创建引用定义变量的时候,在变量名前面加个,就得到了这个变量的一个引用,比如:$scalarref = $foo; # 标量变量引用$arrayref = @ARG......
PHP 关联数组
PHP允许在PHP中使用=>符号将名称/标签与每个数组元素相关联。使用这种方式,可以很容易记住元素,因为每个元素由标号表示一个递增的数字。定义有两种方法来定义关联数组:第一种方式:$salary=array("Hema"=>"550000",&qu......
C# 多维数组
C# 支持多维数组。多维数组又称为矩形数组。您可以声明一个 string 变量的二维数组,如下:string [,] names;或者,您可以声明一个 int 变量的三维数组,如下:int [ , , ] m;二维数组多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。一个......
C++ 指向数组的指针
您可以先跳过本章,等了解了 C++ 指针的概念之后,再来学习本章的内容。如果您对 C++ 指针的概念有所了解,那么就可以开始本章的学习。数组名是一个指向数组中第一个元素的常量指针。因此,在下面的声明中:double balance[50];balance 是一个指向 &balance[0] ......
C# 数组(Array)
数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。声明数组变量并不是声明 number0、number1、…、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用numbers[0]、numbers[......
ObjectiveC 将数组传递给函数
如果要将一维数组作为参数传递给函数,则必须以下列三种方式之一声明函数形式参数,并且所有三种声明方法都会产生类似的结果,因为每个都告诉编译器接受一个整数指针。类似地,可以将多维数组作为形式参数传递。方式-1使用指针形式参数如下(在下一章学习指针的用法)。- (void) myFunction(int ......
UNIX Shell数组(Arrays)
Shell支持另一种类型的变量,称为 array变量。这可以同时保存多个值,数组提供了一种对一组变量进行分组的方法。 定义数组值假设您尝试将各个学生的姓名表示为一组变量。每个单独的变量都是标量变量,如下所示-NAME01="Zara"NAME02="Qadir&quo......
C语言 函数传递数组
如果要在函数中将一维数组作为参数传递,则必须以下三种方式之一声明形式参数,并且所有三种声明方法都会产生类似的结果,因为每个方法都告诉编译器将接收整数指针。类似地,您可以将多维数组作为形式参数传递。方法1形式参数作为指针void myFunction(int *param) { . . .......
Perl 子程序(函数)
Perl 子程序也就是用户定义的函数。Perl 子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。Perl 子程序可以出现在程序的任何地方,语法格式如下:sub subroutine{ statements;}调用子程序语法格式:subroutine( 参数列表 );在......
GO语言 范围(Range)
Go 语言中 range 关键字用于 for循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回key-value 对的 key 值。实例package mainimport "fmt&q......
C语言 数组指针
假设您对C中的指针有一些了解,让我们开始:数组名称是指向数组的第一个元素的常量指针。double balance[50];Balance是指向&Balance[0]的指针,它是数组Balance的第一个元素的地址,因此,以下程序片段将p分配为Balance-的第一个元素的地址double *......
C语言 指针数组
在我们理解指针数组的概念之前,让我们考虑一下下面的示例,该示例使用3个整数的数组#include const int MAX=3;int main () { int var[]={10, 100, 200}; int i; for (i=0; i <......
C# 传递数组给函数
在 C# 中,您可以传递数组作为函数的参数。您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。实例下面的实例演示了如何传递数组给函数:using System;namespace ArrayApplication{ class MyArray { double get......
C++ 从函数返回数组
C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:int * myFunction(){...}另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 sta......
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!