C语言基础入门之C语言列表的增删改查与指针链表详解

这篇具有很好参考价值的文章主要介绍了C语言基础入门之C语言列表的增删改查与指针链表详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

导语

c语言列表,C语言,c语言,算法,开发语言,链表

第一部分:C语言列表的基本操作

在C语言中,列表通常使用数组来实现。数组是一种连续的内存空间,可以存储相同类型的数据。通过下标访问数组元素,可以快速查找和修改数据。

增加元素

要向列表中添加新元素,可以通过将元素插入到指定位置来实现。首先,需要确保列表有足够的空间来存储新元素。然后,将插入位置后的所有元素向后移动一个位置,为新元素腾出空间。最后,将新元素赋值给插入位置。下面是一个示例代码:

#include <stdio.h>

void insertElement(int list[], int size, int position, int value) {
    if (position < 0 || position > size) {
        printf("Invalid position.\n");
        return;
    }

    for (int i = size - 1; i >= position; i--) {
        list[i + 1] = list[i];
    }

    list[position] = value;
}

int main() {
    int myList[10] = {1, 2, 3, 4, 5};
    int size = 5;
    int position = 2;
    int value = 10;

    insertElement(myList, size, position, value);

    size++;

    for (int i = 0; i < size; i++) {
        printf("%d ", myList[i]);
    }

    return 0;
}

运行结果:
1 2 10 3 4 5

在上面的示例中,我们定义了一个名为insertElement的函数,该函数用于将元素插入到指定的位置。我们在main函数中声明了一个包含5个元素的列表,并在第2个位置插入了值为10的新元素。插入完成后,列表中的元素将逐个向后移动,为新元素腾出空间。最后,我们遍历列表并打印出所有元素。

删除元素

要删除列表中的元素,可以通过将指定位置后的所有元素向前移动一个位置来实现。这将覆盖要删除的元素,并将列表缩小一个单位。下面是一个示例代码:

#include <stdio.h>

void deleteElement(int list[], int size, int position) {
    if (position < 0 || position >= size) {
        printf("Invalid position.\n");
        return;
    }

    for (int i = position; i < size - 1; i++) {
        list[i] = list[i + 1];
    }
}

int main() {
    int myList[6] = {1, 2, 3, 4, 5, 6};
    int size = 6;
    int position = 3;

    deleteElement(myList, size, position);

    size--;

    for (int i = 0; i < size; i++) {
        printf("%d ", myList[i]);
    }

    return 0;
}

运行结果:
1 2 3 5 6

在上面的示例中,我们定义了一个名为deleteElement的函数,该函数用于删除指定位置的元素。我们在main函数中声明了一个包含6个元素的列表,并删除了第3个位置上的元素。删除后,列表中的元素将逐个向前移动,覆盖要删除的元素。最后,我们遍历列表并打印出所有元素。

修改元素

要修改列表中的元素,只需要直接通过下标访问并重新赋值即可。下面是一个示例代码:

#include <stdio.h>

void modifyElement(int list[], int position, int value) {
    list[position] = value;
}

int main() {
    int myList[5] = {1, 2, 3, 4, 5};
    int position = 2;
    int value = 10;

    modifyElement(myList, position, value);

    for (int i = 0; i < 5; i++) {
        printf("%d ", myList[i]);
    }

    return 0;
}

运行结果:
1 2 10 4 5

在上面的示例中,我们定义了一个名为modifyElement的函数,该函数用于修改指定位置的元素。我们在main函数中声明了一个包含5个元素的列表,并将第2个位置上的元素修改为10。最后,我们遍历列表并打印出所有元素。

查找元素

要在列表中查找特定的元素,可以使用循环结构逐个比较列表中的元素。如果找到了匹配的元素,可以返回其位置或执行其他操作。下面是一个示例代码:

#include <stdio.h>

int findElement(int list[], int size, int value) {
    for (int i = 0; i < size; i++) {
        if (list[i] == value) {
            return i;
        }
    }

    return -1;
}

int main() {
    int myList[5] = {1, 2, 3, 4, 5};
    int size = 5;
    int value = 3;

    int position = findElement(myList, size, value);

    if (position != -1) {
        printf("Element found at position %d.\n", position);
    } else {
        printf("Element not found.\n");
    }

    return 0;
}

运行结果:
Element found at position 2.

在上面的示例中,我们定义了一个名为findElement的函数,该函数用于查找指定元素在列表中的位置。我们在main函数中声明了一个包含5个元素的列表,并查找值为3的元素。如果找到了匹配的元素,将返回其位置;否则,返回-1。最后,根据返回值打印相应的信息。

第二部分:指针列表的使用

在C语言中,指针是一种特殊的变量类型,用于存储内存地址。通过使用指针,我们可以创建指针列表,即存储指针的数组。指针列表可用于存储和访问其他数据类型的指针,从而实现更灵活的数据结构。

创建指针列表

要创建指针列表,首先需要声明一个指针数组。指针数组的每个元素都可以存储特定类型的指针。下面是一个示例代码:

#include <stdio.h>

int main() {
    int a = 10;
    int b = 20;
    int c = 30;

    int *ptrList[3];

    ptrList[0] = &a;
    ptrList[1] = &b;
    ptrList[2] = &c;

    for (int i = 0; i < 3; i++) {
        printf("%d ", *ptrList[i]);
    }

    return 0;
}

运行结果:
10 20 30

在上面的示例中,我们声明了一个名为ptrList的指针数组,其大小为3。然后,我们将变量a、b和c的地址分别赋值给ptrList的元素。最后,我们通过遍历指针列表并使用解引用操作符*访问指针指向的值。

指针列表的增删改查

指针列表的增删改查操作与普通列表类似,只是操作的对象变为了指针。下面是一个示例代码,演示了指针列表的增删改查操作:

#include <stdio.h>

void insertPointer(int *ptrList[], int size, int position, int *value) {
    if (position < 0 || position > size) {
        printf("Invalid position.\n");
        return;
    }

    for (int i = size - 1; i >= position; i--) {
        ptrList[i + 1] = ptrList[i];
    }

    ptrList[position] = value;
}

void deletePointer(int *ptrList[], int size, int position) {
    if (position < 0 || position >= size) {
        printf("Invalid position.\n");
        return;
    }

    for (int i = position; i < size - 1; i++) {
        ptrList[i] = ptrList[i + 1];
    }
}

void modifyPointer(int *ptrList[], int position, int *value) {
    ptrList[position] = value;
}

int findPointer(int *ptrList[], int size, int *value) {
    for (int i = 0; i < size; i++) {
        if (ptrList[i] == value) {
            return i;
        }
    }

    return -1;
}

int main() {
    int a = 10;
    int b = 20;
    int c = 30;

    int *ptrList[5] = {&a, &b, &c};

    int *newValue = 50;
    int position = 2;

    insertPointer(ptrList, 3, position, newValue);

    int *deletedValue = ptrList[1];

    deletePointer(ptrList, 4, 1);

    int *modifiedValue = 40;
    position = findPointer(ptrList, 4, &c);

    modifyPointer(ptrList, position, modifiedValue);

    for (int i = 0; i < 4; i++) {
        printf("%d ", *ptrList[i]);
    }

    return 0;
}

运行结果:
10 40 50 30

在上面的示例中,我们定义了一系列用于操作指针列表的函数,包括插入、删除、修改和查找。我们声明了一个名为ptrList的指针数组,并初始化了前三个元素。然后,我们插入了一个新的指针到列表的指定位置,删除了一个指针,修改了一个指针的值,并查找了一个指针的位置。最后,我们遍历指针列表并打印出所有指针指向的值。

结论

通过本文的介绍,我们详细讨论了C语言列表的增删改查操作,并进一步探讨了指针列表的使用。列表作为一种常见的数据结构,在C语言中具有重要的应用价值。通过掌握这些操作和技巧,读者可以更好地应用C语言中的列表,提高程序的效率和灵活性。希望本文对读者有所帮助,并能够加深对C语言列表的理解和应用。文章来源地址https://www.toymoban.com/news/detail-734177.html

到了这里,关于C语言基础入门之C语言列表的增删改查与指针链表详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • R语言基础入门教程

    一、引言 R语言是一种用于统计计算和图形的编程语言,由Ross Ihaka和Robert Gentleman于1993年创建。由于其强大的数据处理、统计分析及可视化功能,R语言在数据科学、机器学习、生物信息学等领域得到了广泛应用。本教程将介绍R语言的基础知识,帮助初学者快速入门。 二、R语

    2024年04月10日
    浏览(40)
  • STM32 基础知识入门 (C语言基础巩固)

    1、在不改变其他位的值的状况下,对某几个位进行设值 这个场景在单片机开发中经常使用,方法就是先对需要设置的位用操作符进行清零操作, 然后用|操作符设值。 比如我要改变 GPIOA 的 CRL 寄存器 bit6(第 6 位)的值为 1,可以先对寄 存器的值进行清零操作:  然后再与需

    2024年02月01日
    浏览(53)
  • 自然语言处理基础详解入门

    自然语言是指人类社会约定俗成的,并且区别于人工语言(如计算机程序)的语言,,是自然而然的随着人类社会发展演变而来的语言,它是人类学习生活的重要工具。 自然语言处理(Natural Language Processing, NLP)是一门以计算机为工具,对书面或口头形式的语言 进行各种处理

    2024年02月16日
    浏览(47)
  • C语言基础入门----(5)数组详解

    Tips:本文主要面向C语言初学者及新手,属于系列文章,笔者借此巩固自身同时也希望帮助更多新人更快的入门,如有不当或错误,欢迎指正。 目录 前言 一、数组的定义 1.1数组的概念         1.2数组的定义格式 1.3注意事项  1.4数组元素的访问 1.5数组的特点  1.6常见错误:

    2024年02月04日
    浏览(43)
  • C语言零基础入门(结构体)

    C 语言内置的数据类型,除了最基本的几种原始类型,只有数组属于复合类型,可以同时包含多个值,但是只能包含相同类型的数据,实际使用中并不够用。 实际使用中,主要有下面两种情况,需要更灵活强大的复合类型。 复杂的物体需要使用多个变量描述,这些变量都是相

    2024年01月17日
    浏览(37)
  • C语言 指针声明和定义 - C语言零基础入门教程

    目录 [一.指针简介] [1.内存] [2.内存地址] [3.指针声明] [二.指针类型] [三.声明并初始化一个指针] [1.声明指针并直接初始化 – 推荐] [2.先声明指针在初始化 – 不推荐] [四.查看指针地址和指针的值] [五.NULL 指针 – 空指针] [六.重点总结] [七.猜你喜欢] 零基础 C/C++ 学习路线推荐

    2024年03月22日
    浏览(40)
  • C语言入门基础知识【完整版】

    C语言中二进制数、八进制数和十六进制数的表示: 二进制 :二进制由 0 和 1 两个数字组成,使用时必须以0b或0B(不区分大小写)开头。例如: 0b101 、 0B001 注意:标准的C语言并不支持二进制写法,有些编译器自己进行了扩展,才会支持二进制数字 八进制 :八进制由 0~7 八个

    2024年02月09日
    浏览(95)
  • 《零基础7天入门Arduino物联网-06》程序基础-编程语言是什么

    配套视频课程:《零基础学Arduino物联网,入门到进阶》 配套课件资料获取:微联实验室 配套学习套件购买:淘宝搜索店铺【微联实验室】 程序是什么 程序设计可以理解为是用计算机语言创造出一系列指令的过程,这些指令可以让计算机按照我们预先设定的规则和流程,完

    2024年02月12日
    浏览(34)
  • 【Java入门合集】第二章Java语言基础(三)

    博主:命运之光 专栏:Java零基础入门 学习目标 掌握变量、常量、表达式的概念,数据类型及变量的定义方法; 掌握常用运算符的使用; 掌握程序的顺序结构、选择结构和循环结构的使用; 掌握数组的定义及使用方法; 掌握基本的输入输出方法; Java中的语句有很多种形式

    2024年02月03日
    浏览(51)
  • 【Java入门合集】第二章Java语言基础(一)

    博主:命运之光 专栏:Java零基础入门 学习目标 掌握变量、常量、表达式的概念,数据类型及变量的定义方法; 掌握常用运算符的使用; 掌握程序的顺序结构、选择结构和循环结构的使用; 掌握数组的定义及使用方法; 掌握基本的输入输出方法; 提示:不要去强记

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包