English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base di C

Controllo di flusso in C

C 语言函数

C 语言数组

C 语言指针

C 语言字符串

Struttura in C

C 语言文件

C 其他

C 语言参考手册

C 语言数组

在本教程中,您将学习如何使用数组。您将借助示例学习如何声明,初始化和访问数组的元素。

数组是可以存储多个值的变量。例如,如果要存储100个整数,则可以为其创建一个数组。

int data[100];

如何声明数组?

dataType arrayName[arraySize];

例如,

float mark[5];

在这里,我们声明了一个浮点类型的数组mark。其大小为5。意味着,它可以容纳5个浮点值。

需要注意的是,数组的大小和类型一旦声明就不能更改

访问数组元素

您可以按索引访问数组的元素。

假设您如上所述声明了一个数组mark。第一个元素是mark[0],第二个元素是mark[1],依此类推。

说明:

  • 数组的第一个索引为0,而不是1。在此示例中,数组为第mark[0]一个元素。

  • 如果数组的大小为,则要n访问最后一个元素,n-1则使用索引。在这个实例中mark[4]

  • 。假设的起始地址mark[0]是2120d。然后,的地址mark[1]将为2124d。同样,地址mark[2]将是2128d等。
    这是因为a的大小float是4个字节。

如何初始化数组?

在声明期间可以初始化数组。例如,

int mark[5] = {19, 10, 8, 17, 9};

您也可以这样初始化一个数组。

int mark[] = {19, 10, 8, 17, 9};

在这里,我们没有指定大小。但是,当我们使用5个元素进行初始化时,编译器知道其大小为5。

这里,

mark[0] 等于 19
mark[1] 等于 10
mark[2] 等于 8
mark[3] 等于 17
mark[4] 等于 9

更改数组元素的值

int mark[5] = {19, 10, 8, 17, 9};
// 使第三个元素的值为-1
mark[2] = -1;
// 使第五个元素的值为0
mark[4] = 0;

输入和输出数组元素

这是如何从用户那里获取输入并将其存储在数组元素中的方法。

// 获取输入并将其存储在第三个元素中
scanf("%d", &mark[2]);
// 把输入存储在第i个元素中
scanf("%d", &mark[i-1]);

Questo è il metodo per stampare un singolo elemento dell'array.

printf("%d", mark[0]);
//Stampa il primo elemento dell'array
printf("%d", mark[2]);
//Stampa il terzo elemento dell'array
//Stampa l'elemento dell'array alla posizione i
printf("%d", mark[i-1]);

Esempio 1: Input/Output dell'array

//Il programma riceve 5 valori dall'utente e li memorizza nell'array
//Stampa gli elementi memorizzati nell'array
#include <stdio.h>
int main() {
  int values[5];
  printf("Inserisci 5 interi: ");
  //Accetta l'input e memorizzalo nell'array
  for(int i = 0; i < 5; ++i) {
     scanf("%d", &values[i]);
  }
  printf("Visualizza l'intero: ");
  //Stampa gli elementi dell'array
  for(int i = 0; i < 5; ++i) {
     printf("%d\n", values[i]);
  }
  return 0;
}

Risultato di output

Inserisci 5 interi: 1
-3
34
0
3
Visualizza l'intero: 1
-3
34
0
3

Qui, utilizziamo un ciclo for per ottenere 5 numeri inseriti dall'utente e memorizzarli in un array. Poi, utilizziamo un altro ciclo for per visualizzare questi elementi sullo schermo.

Esempio 2: Calcolare la media

//Il programma utilizza un array per trovare la media di n numeri
#include <stdio.h>
int main()
{
     int marks[10], i, n, sum = 0, average;
     printf("Inserisci il numero di elementi: ");
     scanf("%d", &n);
     for(i=0; i<n; ++i)
     {
          printf("Inserisci il numero %d: ", i+1);
          scanf("%d", &marks[i]);
          
          //Aggiungi l'intero inserito dall'utente alla variabile sum
          sum += marks[i];
     }
     average = sum/n;
     printf("Media = %d", average);
     return 0;
}

Risultato di output

Inserisci il numero di elementi: 5
Inserisci il numero 1: 45
Inserisci il numero 2: 35
Inserisci il numero 3: 38
Inserisci il numero 4: 31
Inserisci il numero 5: 49
Media = 39

Qui, calcoliamo la media dei n numeri inseriti dall'utente.

Accesso agli elementi al di fuori dell'intervallo!

Supponiamo che tu abbia dichiarato un array composto da 10 elementi. Ad esempio

int testArray[10];

Puoi accedere agli elementi dell'array testArray[0] - testArray[9].

现在,假设您尝试访问testArray[12]。该元素不可用。这可能会导致意外输出(抛出错误)。

因此,永远不要访问数组边界之外的元素。

多维数组

在本教程中,您了解了数组。这些数组称为一维数组。

在下一个教程中,您将学习多维数组(数组的数组)