美文网首页
c语言数组基本操作

c语言数组基本操作

作者: 一路向后 | 来源:发表于2021-01-31 21:11 被阅读0次

1.源码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>

//数组输出
void output(int *arr, int n)
{
    if(n > 0)
    {
        int i;

        for(i=0; i<n-1; i++)
        {
            printf("%d ", arr[i]);
        }

        printf("%d\n", arr[i]);
    }
}

//数组初始化
int init(int **arr, int n)
{
    *arr = (int *)malloc(n*sizeof(int));
    memset(*arr, 0x00, n*sizeof(int));
    return n;
}

//数组扩容
int resize(int **arr, int n)
{
    int *tmp = *arr;

    if(*arr == NULL)
    {
        return 0;
    }

    *arr = (int *)malloc(n*2*sizeof(int));
    memset(*arr, 0x00, n*2*sizeof(int));
    memcpy(*arr, tmp, n*sizeof(int));
    free(tmp);

    return n*2;
}

//数组插入元素
int insert(int **arr, int *size, int n, int elem, int index)
{
    int i;

    if(index < 0 || index > n)
    {
        printf("超出数组实际元素范围\n");
        return n;
    }

    if(n + 1 > *size)
    {
        *size = resize(arr, *size);
    }

    for(i=n-1; i>=index; i--)
    {
        (*arr)[i+1] = (*arr)[i];
    }

    (*arr)[index] = elem;

    return n+1;
}

//数组删除元素
int delete(int *arr, int n, int index)
{
    int i;

    if(index < 0 || index > n)
    {
        printf("超出数组实际元素范围\n");
        return n;
    }

    for(i=index; i<n-1; i++)
    {
        arr[i] = arr[i+1];
    }

    arr[i] = 0x00;

    return n-1;
}

int main()
{
    int *array = NULL;
    int size = 4;
    int n = 0;

    init(&array, size);

    output(array, n);

    n = insert(&array, &size, n, 3, 0);
    output(array, n);

    n = insert(&array, &size, n, 7, 1);
    output(array, n);

    n = insert(&array, &size, n, 9, 2);
    output(array, n);

    n = insert(&array, &size, n, 5, 3);
    output(array, n);

    n = insert(&array, &size, n, 6, 1);
    output(array, n);

    printf("size=%d\n", size);

    return 0;
}

2.编译源码

$ gcc -o example example.c

3.运行及其结果

$ ./example
3
3 7
3 7 9
3 7 9 5
3 6 7 9 5
size=8

相关文章

  • c语言数组基本操作

    1.源码实现 2.编译源码 3.运行及其结果

  • 数据结构--单向链表

    C语言中,我们在使用数组时,会需要对数组进行插入和删除的操作,这时就需要移动大量的数组元素,但在C语言中,数组属于...

  • iOS新手的进阶之路

    一、C语言基础 基本数据类型、基本运算、函数、数组、字符串、指针、结构体、预处理指令、枚举、文件操作、内存管理 二...

  • iOS开发学习计划

    一、C语言基础 基本数据类型、基本运算、函数、数组、字符串、指针、结构体、预处理指令、枚举、文件操作、内存管理 二...

  • 2018/07/17

    c语言基础分支数组,2018/07/18运行程序,循环及数组 07/29基本类型 2018/7/30计划 c语言课...

  • C语言数组的升维与降维之说

    C语言数组的升维与降维之说 C语言数组的升维 C语言数组的降维

  • SQL C语言基本操作

    相关API 打开 实例 关闭 实例 获取错误消息 操作表 实例创建 实例插入 实例修改 实例删除 实例回调查询 非回调

  • c/c++语言基础

    c/c++语言基础 基本类型(基本内置类型) 构造类型 指针类型 引用类型 空类型 数组 预处理命令 基本类型 基...

  • 2. Numpy使用

    numpy的基本操作 生成数组 数组的基本操作 数组的运算 数组间的运算

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

网友评论

      本文标题:c语言数组基本操作

      本文链接:https://www.haomeiwen.com/subject/xoxdtltx.html