C语言-一维数组

文章详细介绍了数组的概念,包括数组作为相同数据类型元素的集合,数组的定义和初始化方式,如intarr[数据长度],以及动态初始化。还讨论了数组名的含义,表示数组首元素的地址,并提供了遍历数组元素的循环示例。此外,文章通过两个示例展示了如何检查数组中是否存在特定数值以及统计特定数值的出现次数。
摘要由CSDN通过智能技术生成

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

数值概述数组的定义和初始化
      数组是包含给定类型的一组数据,并将这些数据依次存储在连续的内存空间中,每个独立的数据被称为数组的素(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;
} 

运行结果如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值