> 文章列表 > C语言-一维数组

C语言-一维数组

C语言-一维数组

数组由数据类型相同的一系列元素组成。

数值概述数组的定义和初始化
      数组是包含给定类型的一组数据,并将这些数据依次存储在连续的内存空间中,每个独立的数据被称为数组的素(element)。元素的类型可以是任意类型。 数组本身也是一个结构,其类型由它的元素类型延伸而来。更具体地数组的类型由元素的类型和数量所决定。如果一个数组的元素是 T 类型,那么该数组就称为“了数组"”。例如,说,果元素类型为 int,那么该数组的类型就是“int 数组”。然而,int 数组类型是不完整的类型,除非指定了数组元素的数量。如果一个 int 数组有 16 个元素,那么它就是一个完整的对象类型,即“16 个 int 元素数组”

1.什么是数组?

数组是相同数据类型元素的集合。
简单说,数组即就是在计算机内存中找一块连续的内存,在里面放相同类型的数据。
注意:
1.数组里放入的数据类型必须相同;
2.当数组创建后其长度就不可改变;

一维数组的定义和初始化
数组的定义决定了数组名、元素类型以及元素个数其语法如下:

<类型> 组名[<元素数量>];

元素数量在方括号 ([]) 之间,它必须是大于0 的整数常量表达式

2.数组的声明的两种方式:

1)int arr[数据长度];  常量(宏常量,常变量)
      int arr[SIZE]     //随机值
 2)int arr[10]={1,2,3,4,5,6,7,8,9,10 };
 3)int arr[10]={1};       存在1,0,0,0,0,0,0,0,0,0
     int arr[10]={};       存在10个0

4)int arr[]={1,2,3,4};      //自动推导数组元素个数

 

 

3. 数组名代表的含义:

     数组首元素的地址 &arr[0]  <=>  arr
     arr代表整个数组元素   ->数组定义处于同一个作用域 sizeof(arr)

   int arr[10] = { 0 };printf("%d\\n", sizeof(arr));         40字节int arr[10]={0};sizeof(arr)  ->  数组总字节大小sizeof(arr[0])  ->元素类型所占字节数int len= sizeof(arr)/sizeof(arr[0])   ->数组元素总个数

 4.循环遍历数组元素

     for(int i=0;i<sizeof(arr)/sizeof(arr[0]);i++){printf("%d\\n",arr[i]);}

5.打印一个数组里面的元素 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>void show(int *arr[10],int len)        //arr形参退化为指针(地址)
{ for (int i = 0; i < len; i++){printf("%-2d\\n", arr[i]);}
}int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int len = sizeof(arr) / sizeof(arr[0]);show(arr, len);return 0;
} 

运行结果如下图:

 

 

示例1:在一个一维数组中,判断是否存在一个数

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>int main()
{//是否存在一个元素 ,键盘获取 int value, i=0;   // 变量的作用域;定义处生scanf("%d", &value);int arr[10] = { 1,2,3,4,5,6,0 };int len = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i <len; i++){if (arr[i] == value) {printf("存在\\n");break;}}printf("不存在\\n");if (i == len) {printf("不存在\\n");}return 0;
}

示例二:给定一个整型数组{1,2,3,3,1,2,4,5,1},统计数字1的个数

 

int getcount(int* arr,int len,int value)
{int count = 0;for (int i = 0; i < len; i++){if (arr[i] == value){count++;}}return count;
}int main()
{int arr[] = {1,2,3,3,1,2,4,5,1 };int len = sizeof(arr) / sizeof(arr[0]);int count = getcount(arr, len, 1);printf("%d\\n", count);/*show(arr, len);*/return 0;
} 

运行结果如下:

 

猜谜语网