C语言之函数总结

【C语言】函数知识点总结 函数基本知识 阅读详情

目录

前言

一、什么是函数?为什么要用函数?

二、函数的分类

1.库函数

2.自定义函数

三、创建并使用简单的函数

四、函数的嵌套调用和链式访问

五、编译多源代码文件的程序

六、函数递归


前言

函数是C语言的基本组成单元,充分发挥函数功能,可以使程序容易编写、阅读、调试和修改。本文是对函数的总结。


一、什么是函数?为什么要用函数?

1、函数是完成特定任务的独立程序代码单元。

2、使用函数的原因:

(1)使用函数可以省去编写重复代码的苦差事

(2)及时程序只完成某项任务一次,也值得使用函数。因为函数让程序更加模块化,从而增加程序代码的可读性,更方便后期修改、完善。

二、函数的分类

库函数和自定义函数

1.库函数

(1)如printf()、strlen()......,由C语言提供定义,编程时直接调用即可的函数。我们在开发的过程中每个程序员都可能用的到,为了支持可移植性和提高程序的效率,所以C语言的基础库中提供了一系列类似的库函数,方便程序员进行软件开发。

(2)总结:C语言常用的库函数有:IO函数(如:scanf()、printf())、字符串操作函数(如:strlen())、字符操作函数(如:tolower())、内存操作函数(如:memset())、时间/日期函数(如:time())、数学函数(如:sqrt())、其他库函数

(3)注意:使用库函数,必须包含 #include 对应的头文件。

2.自定义函数

程序员自己设计的函数

三、创建并使用简单的函数

void starbar (void);        //函数原型
int main()
{
      starbar();           //函数调用
      printf("Hello World!\n");
      starbar();

      return 0;
}
void starbar(void)          //定义函数
{
     int count;

     for(count = 1; count <= 12; count++)
     {
         putchar('*');
     }
      putchar('\n');
}

编译并运行程序,输出如下:

************

Hello World!

************ 

1、函数原型:告诉编译器函数的类型;函数定义:明确地指出函数要干什么;函数调用:表明在此处执行函数

主调函数:调用其它函数的函数;被调函数:被调用的函数

2、函数原型:

(1)函数原型指明了函数返回返回值类型和函数接受的参数类型。在本代码中,函数原型可以放在main()的前面,也可以放在main()里面的声明变量处

(2)当函数接受参数时,函数原型用逗号分隔的列表指明参数的数量和类型。根据个人喜好,你也可以省略变量名。如:

void show_char(char ch, int num)也可以写成void show_char(char, int )。

(3)在函数原型中使用变量名并没有实际创建变量

(4)C语言规定函数要先先定义后使用。如果自定义函数放在主调函数的后面,就需要在函数调用之前加上函数原型声明(函数声明),有一种方法可以省略函数原型却保留函数原型的优点,即把自定义函数放在主调函数的前面。我们要明白使用函数原型声明的原因:为了让编译器在第一次执行到该函数之前就知道如何使用它。

(5)注意:函数原型声明是一条C语句,后面要加分号!

3、函数定义:

(1)函数定义的一般形式为:函数类型名   函数名(形式参数)    //函数首部

                                             {

                                                        函数实现过程                       //函数体

                                              }

(2)函数名:函数名是函数整体的称谓,需要使用一个合法的标识符表示。

(3)函数体:由一对大括号内的若干条语句组成,并用return语句返回运算的结果给主调函数,使用return语句的另一个作用就是,终止函数并把控制返回给主调函数的下一条语句。return 语句只能返回一个值。定义在函数中的变量是局部变量,属于函数私有,这意味着在其它函数使用同名变量不会引起名称冲突。

(4)函数类型:带返回值的类型应该与其返回值类型相同,没有返回值类型的函数应该声明为void类型。

(5)形式参数:函数定义的函数头中声明的变量,简称:形参。和定义在函数中的变量一样,形式参数也是局部变量,属于函数私有,这意味着在其它函数使用同名变量不会引起名称冲突。注意:每个变量之前都要声明其类型,即void dubs(int x, y, z)是无效的函数头,必须这样写void dubs(int x, int y, int z)

(5)注意:函数定义时的函数首部不是语句,后面不能跟分号

4、函数调用:

(1)函数调用过程:任何C程序执行,首先从主函数main()开始,如果遇到某个函数调用,主函数被暂停执行,转而执行相应函数,该函数执行玩完后将返回主函数,然后再从原先暂停的位置继续执行

(2)函数调用的形式:函数名(实际参数表)。

对于实现计算功能的函数,函数调用通常出现在两种情况:

①赋值语句:volume = cylinder(radius, height);

②输出函数的实参:printf("%f",cylinder(radius, height));

(3)实际参数:真实传给函数的参数,叫实际参数,简称实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。

(4)参数传递:程序在遇到函数调用时,实参的值依次传给形参。形参和实参必须一一对应,两者数量相同,类型尽量保持一致。

(5)函数结果返回

(6)传值调用和传址调用:

①传值调用函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。

②传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式。 这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的变量。

如:看一段代码:

#include <stdio.h>
void mikado(int bah)
{
    int pooh = 10;
   
    printf("In mikado(),pooh = %d and &pooh = %p\n",pooh, &pooh);
    printf("In mikado(),bah = %d and &bah = %p\n",bah, &bah);
}
int main()
{
    int pooh = 2, bah = 5;

    printf("In main(),pooh = %d and &pooh = %p\n",pooh, &pooh);
    printf("In main(),bah = %d and &bah = %p\n",bah, &bah);
    mikado(pooh);

    return 0;
}

编译并运行代码,输出如下:

In main(),pooh = 2 and &pooh = 0xfff5fbff8e8

In main(),bah = 5 and &bah = 0xfff5fbff8e4

In mikado(),pooh = 10 and &pooh = 0x7fff5fbff8b8

In mikado(),bah = 2 and &bah = 0x7fff5fbff8bc

 可以看到两个pooh地址不同和两个bah的地址也不同,这说明计算机把它们4个看成独立的变量。每个C函数都有自己的变量,这样做可以防止原始变量被被调函数中的副作用意外修改。

然后看一道题:写一个函数可以交换两个整形变量的内容。

#include <stdio.h>
void Swap1(int x, int y)
 {
     int tmp = 0;

     tmp = x;
     x = y;
     y = tmp; 
}

void Swap2(int *px, int *py) 
{
     int tmp = 0;

     tmp = *px;
     *px = *py;
     *py = tmp;
 }
int main()
{
    int num1 = 1;
    int num2 = 2;

    Swap1(num1, num2);
    printf("Swap1:num1 = %d,num2 = %d\n", num1, num2);
    Swap2(&num1, &num2);
    printf("Swap2:num1 = %d,num2 = %d\n", num1, num2);

    return 0;
}

编译并运行代码,输出如下:

Swap1:num1 = 1,num2 = 2

Swap2:num1 = 2,num2 = 1

①对于Swap1(): Swap1()下的结果显示num1和num2的值没有交换。问题不在Swap1函数里面,而在于把结果传回main()时。Swap1()使用的是普通变量的调用(值调用),在函数调用时,将实参num1,num2的值传递给形参x,y,Swap1()通过tmp将x和y值交换,但是当返回主调函数后,Swap1()中定义的变量都被销毁,而num1,num2的值并没有发生变化。

②对于Swap2():Swap2()的实参是num1,num2的地址,在函数调用时,将实参num1,num2的地址传递给形参px,py,px指向num1,换言之,px和num1代表同一内存单元,只要在函数中改变了*px的值,就改变了该存储单元的值,所以Swap2()可以达到交换值的目的

那么,这样可以交换num1,num2的值吗?

void Swap2(int *px, int *py) 
{
     int tmp = 0;

     tmp = px;
     px = py;
     py = tmp;
 }

答案是不能!我们要交换的是num1,num2的值,而不是它们的地址,Swap3()直接交换了px,py的值,由于和Swap1()同样的理由,px,py的改变并不会影响num1,num2的值。

四、函数的嵌套调用和链式访问

1.函数的嵌套调用:

#include <stdio.h>
void new_line()
{
    printf("hehe\n");
}
void three_line()
{
    int i;

    for(i = 0 ;i < 3; i++)
    {
        new_line();
    }
}
int main()
{
    three_line();

    return 0;
}

编译并运行该代码,输出如下:

hehe

hehe

hehe

 此处是main()调用three_line(),three_line()调用new_line()

注意:函数可以嵌套使用,但是不能嵌套定义,如:

#include <stdio.h>
int main()
{
    void test()
    {
         printf("haha\n");
    }

    return 0;
{

这样的代码是错误的!! 

2.函数的链式访问:

把一个函数的返回值作为另外一个函数的参数。请看一段代码:
#include <stdio.h>
int main()
{
	printf("%d", printf("%d", printf("%d", 43)));
	
	return 0;
}

编译并运行该代码,输出如下:

4321

//先打印43,注意printf函数的返回值是打印在屏幕上字符的个数,43为2个字符,所以紧接着打印2;2为1个字符,所以打印1

五、编译多源代码文件的程序

使用头文件:把函数原型和#define定义的值放在头文件中,然后再每个源文件中使用#include指令包含该头文件即可。自定的头文件用“”,如:#include "hotel.h"

main.c源文件可以提供控制模块,hotel.c源文件可以提供函数支持模块(举个例子)

六、函数递归

1.什么是函数递归:函数自己调用自己(主要思考方式:大事化小)

2.递归的基本原理:

(1)每级函数调用都有自己的变量

(2)每级函数调用都会返回一次

(3)递归函数中,位于递归调用之前的语句,均按被调函数的顺序执行

(4)递归函数中,位于递归调用之后的语句,均按被调函数的相反的顺序执行

(5)虽然每级递归都有自己的变量,但是并没有拷贝函数的代码

(6)递归函数必须包含能让递归调用停止的语句

3.两个必要条件:

(1)存在限制条件,当满足这个限制条件的时候,递归便不再继续。

(2)每次递归调用之后越来越接近这个限制条件。

看一道题:把十进制正整数转换为二进制数

提示:十进制正整数转换为二进制方法:将十进制数除以2,得到的商再除以2,依次类推直到商为0或1时为止,同时在旁边标出各步的余数(0或1),最后倒着写出来。一般而言,对于数字n,其二进制的最后一位是n%2,因此,计算的第一位数字实际上是待输入二进制数的最后一位数字。这一规律提示我们,在递归调用之前计算n%2,在递归调用之后打印结果。当与2相除的结果小于2时停止计算,因为只要结果>=2,就说明还有二进制位。

#include <stdio.h>
void to_binary(int n)
{
    int r;

    r = n % 2;
    if(n >= 2)
    {
        to_binary(n/2);
    }
    putchar(r == 0 ? '0' : '1');
}
int main()
{
    int number;

    scanf("%d",&number);
    to_binary(number);

    return 0;
}

编译并运行该代码:

9

1001

3.尾递归:把递归调用置于函数末尾,即正好在return语句之前。尾递归是最简单的递归形式。

4.递归与循环:

看一道题:求n的阶乘(两种方法实现)

#include <stdio.h>
int fact(int num)          //循环实现
{
    int i,ans;

    ans = 1;
    for(i = 1; i <= num; i++)
    {
        ans *= i;
    }
    
    return ans;
}

int factorial(int num)        //递归实现
{
    if(num <= 1)
       return 1;
    else
       return num* factorial(num-1);
}

int main()
{
    int n;

    scanf("%d",&n);
    printf("%d\n",fact(n));
    printf("%d\n",factorial(n));

    return 0;
}

编译并运行该代码:

5

120

120

既然循环和递归都可以计算,那么我们选哪一个呢?选择循环,每次递归都会创建一组变量,所以递归用的内存更多,而且每次递归调用都会把创建的一组新变量放在栈中,递归调用的数量受限于内存空间,每次递归调用都要花费一定的时间,所以递归执行的速度较慢。但是,在某些情况下,不能用简单的循环代替递归。

5.递归的优点和缺点:

(1)优点:为某些编程问题提供了最简单的解决方案

(2)缺点:一些递归算法会快速消耗计算机的内存资源;不方便阅读和维护

看一道题:求第n个斐波那契数

int fib(int n)
 {
     if (n <= 2)         
        return 1;
     else
        return fib(n - 1) + fib(n - 2);
}

该函数使用了双递归,即每一级递归都要都要调用本身两次,这暴露了一个问题,每一级递归创建的变量都是上一级递归调用的两倍,变量的数量在呈指数增长,很快就会消耗掉计算机的大量内存,使程序崩溃。

C语言总结五:函数详细总结 函数是C语言中非常重要的概念,在结构化程序设计中,函数是将任务进行模块划分的基本单位。通过函数,可以把一个复杂任务分解成为若干个易于解决的小任务。充分体现结构化程序设计由粗到精,逐步细化的设计思想。一个大的程序一般应分为若干个程序模块,每个模块实现一个特定的功能,这些模块称为子程序,在C语言中子程序用函数实现。函数的设计一般具有高内聚低耦合的特点,方便进行维护和使用。 本篇博客详细总结函数的全部内容,达到学会使用函数和设计函数的目的! 阅读详情

相关推荐

14自由度汽车动力学模型

多体系统分解簧上质量刚体:包含车身主体,具有6个自由度(x/y/z平移 + 俯仰/侧倾/横摆旋转)四个簧下质量刚体:每个车轮独立建模,含垂直跳动(z向)和旋转(绕z轴)自由度总自由度:6(车身) + 4×2(车轮) = 14自由度。

chao189844的博客 1194

c语言的函数总结

文章目录一、函数概述二、函数的定义1. 函数头2. 函数体3.函数定义的形式4、定义与声明三、函数参数1、形式参数与实际参数2、数组作函数参数3、main函数的参数四、函数的调用1、函数的调用方式**2、 嵌套调用 一、函数概述 构成C程序的基本单元是函数。函数中包含程序的可执行代码。 每个C程序的入口和出口都位于main函数之中。编写程序时,并不是将所有内容 都放在主函数main中。为了方便规划、组织、编写和调试,一般的做法是将一个程序划分成若干个程序模块,每一个程序模块都完成一部分功能。这样,不同的程序

mantouyouyou的博客 5521

物理与工程中的‘黑话’:Kronecker delta和Levi-Civita符号到底简化了什么?

本文深入解析了物理与工程中常用的Kronecker delta和Levi-Civita符号的简化作用。通过对比传统表示与张量表示,展示了这些符号在向量运算、矩阵迹计算及流体力学模拟中的高效应用,显著提升计算效率和代码可读性。特别适合理论物理和工程数学领域的学习者与从业者。

weixin_27215403的博客 397

【C语言】函数知识总结(1)

函数本质:一段可以被重复调用的、功能相对独立的程序段函数的引入目的:1.便于结构化、模块化编程2.解决代码的重复函数调用当一个C语言程序的规模较大时,可以由多个源文件组成,但其中只有一个源文件含有主函数main(),而其他源文件不能含有主函数。主函数可以调用其他函数,但是相反则不行。其它函数之间可以互相调用,同一个函数可以被一个或多个函数调用任意多次。一个函数调用另一个函数,前者称为调用函数,后者称为被调函数。类型名 函数名()函数体或类型名 函数名(void)

m0_74102736的博客 460

ET篇:Google.Protobuf的学习(理解基本的使用流程)

据我目前所知,ET使用的数据交换协议是Google.Protobuf,所以今天就来学习一下,但是网上许多人都是以高下立判的方式讲解的,对新手小白很不友好,所以我今天就以纯小白的视角和大家一起学习 学习环境: .NET Core2.2 .NET Framework 4.7.2 Rider protobuf-csharp-3.7.0-rc-2 Google.Protobuf简介 prot...

设计师养成记 3563

基于CANoe的Basic Diagnostics ECU (UDS)

基于CANoe的Basic Diagnostics ECU (UDS)

farmer00的博客 9152

【C语言】函数基础知识点总结

目录 1.函数定义 2.函数分类 2.1自定义函数 2.2库函数 3.传值调用与传址调用 4.函数的声明 5.函数的嵌套调用和链式访问 5.1嵌套调用 5.2链式访问 6.函数递归 1.函数定义 维基百科中,函数的定义是 “在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组 成。它负责完成.

凡事都是靠练习 3474

OSMDroid(1)——OSM简介,基础例子搭建

1.OSMDroid简介 Osmdroid是一款完全开源的地图基本操作SDK,相比于现在普遍使用的百度地图,高德地图,谷歌地图等最大的好处就是开源。 最近在做一个军方项目,要求完全不能联网,从开发到应用整个阶段都是在局域网进行,相比之下采用了OSMDroid这个SDK作为解决方案。 先来看OSMDroid,便是(OpenStreetMapForAndroid),后面都简称OSM...

robotskly的博客 6177

C语言函数

函数的概念 每个C程序都至少有一个函数,即主函数main(),如果程序的任务比较简单,全部的代码都写在main()函数中,但是,在实际开发中,程序的任务往往比较复杂,如果全部的代码都写在main()函数中,main()函数将非常庞大臃肿,结构复杂,代码重复。 我们可以根据程序的逻辑和任务的分工把代码划分到不同的自定义函数中,main()更关心业务逻辑和处理...

C语言技术网-码农有道 5万+

基于YOLOv8n的FPGA无PS端PL部署完整实现方案

本文提出了一种将YOLOv8n目标检测模型完整部署到FPGA纯PL端的实现方案。通过PyTorch训练和INT8量化技术,结合Vitis AI工具链,将模型转换为适合FPGA实现的硬件描述。方案详细阐述了从模型训练、量化校准到FPGA硬件设计的全流程,重点解决了无PS端部署的架构设计、资源优化和实时性保障等关键技术挑战。实验结果表明,该方案在Xilinx Virtex-690T FPGA上实现了30FPS以上的实时目标检测性能,为边缘计算场景提供了高效的硬件加速解决方案。

huanghm88的专栏 506

173、NPU的编译器开发:开源社区贡献指南

本文分享了在NPU编译器开源社区贡献的经验心得。作者通过实际案例(如卷积维度错误、NaN输出等)阐述了NPU编译器开发的特殊性:硬件迭代快、边界条件复杂、厂商代码不可全信。提出有价值的贡献应聚焦硬件适配测试、性能剖析工具和反模式文档三类内容。强调用实测数据沟通、主动承担维护责任、保持代码通用性等社区协作技巧,并建议通过RFC提前沟通、附硬件实测数据等方式提高PR通过率。最后指出,NPU编译器开发是与聪明人共同填坑的过程,鼓励开发者提交"有诚意的代码"而非完美代码。

m0_50546716的博客 35

【C语言函数基础】

文章目录1.函数2.C语言函数分类2.1 库函数2.1.1 库函数的分类2.1.1 库函数的学习2.2 自定义函数3.函数的参数3.1 实际参数3.2 形式参数4.函数的调用4.1 传值调用4.2 传址调用5.函数的声明和定义 1.函数 百度百科对函数的定义:子程序 在计算机科学中,子程序是一个大型程序中的某部分代码,有一个或者多个语句块组成,它负责完成某项特定的任务,而且相比于其他的代码,具备相对的独立性。 一般来说会有输入参数和返回值,提供对过程的封装和细节的隐藏,这些代码通常被集成为软件库。 2.

qq_43727529的博客 4972

黑猫带你学UFS协议第8篇:UFS电气特性详解(Power、CLK、Reset等)

UFS强制支持secure mode。UFS设备可能会存储个人或者公司的信息,UFS提供把数据永久从设备上移除的功能,并且保证对存储介质进行逆向恢复数据也恢复不回来原有数据。安全模式是以逻辑单元为单位进行应用的,不同的逻辑单元可以有不同的安全模式。由于UFS设备的存储介质不同,所以把数据安全从存储介质上移除方式会有不同,spec提供了三种通用的移除方法,UFS设备至少支持其中一种。● 对存储的位置进行一次擦除操作。● 对存储的位置使用单一字符(比如0xAA)覆盖写,然后进行擦除。.........

黑猫奥利奥的博客 4075

C语言——函数

C语言中的函数又常常被称为子程序,是用来完成某项特定的工作的一段代码。就像我们生活中的模块化建造技术,类比模块化建房子的过程:整个程序好比最终要建成的房子,而函数所代表的就是每部分模块(如第一层,第二层或者屋顶···),将这些模块灵活的拼接,就搭建成了最后的房子。从函数的定义角度:我们可以把函数分为库函数和自定义函数是由用户根据需要自行编写的函数,创建格式如下:ret_typename形式参数函数体(用来描述函数执行过程的部分)创建例子:int决定了z的返回类型是整形int。

tan_run的博客 2087

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

什么是c语言函数,C语言中的函数是什么意思

C语言中的函数是什么意思简单来说函数就是c语言的模块,一块块的,有较强的独立性,但是可以相互调用。这是c和c++区分的地方,c++面向对象,对象独立完成功能,无需调用。一个c程序就可以是一个函数,里面再包含n个函数。【延展】C语言中函数和函数体的区别是什么?第一、 简单来说函数就是c语言的模块,一块块的,有较强的独立性,但是可以相互调用。一个c程序就可以是一个函数,里面再包含n个函数,有固定输入和...

weixin_39986543的博客 6503

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C语言main函数的写法

main函数是C程序的入口函数,即程序的执行是从main函数开始,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种不同的写法,下面就来探究一下各种不同的写法。注:测试环境为Ubuntu 17.10,GCC版本为7.2.0。 NO.1 main(){}例: #include mai

αlphαβet 5万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【C语言】函数

文章摘要: 本文系统讲解了C语言函数的核心知识,包括函数的概念、组成要素和使用方法。重点介绍了库函数(如sqrt)和自定义函数的定义与调用,强调形参实参的区别及return语句的使用规范。通过加法函数等代码示例,展示了函数在代码复用和模块化设计中的优势。文章还提及数组作为函数参数的应用场景,帮助读者全面掌握C语言函数编程技巧。

2301_78257800的博客 1735

c语言——函数

库函数很重要但在c语言中更重要的是自定义函数,有了自定义函数我们才能写出不一样的代码,让我们更具有创造性。我们可以把函数想象成小型的⼀个加工厂,工厂得输入原材料,经过工厂加工才能生产出产品,那函数也是一样的,函数⼀般会输入一些值,这些值也就是参数(可以是0个,也可以是多个),经过函数内的计算,得出结果。在以上某年某月有多少天的程序中就实现了函数的定义与调用如果将自定义函数放在main函数后会发生什么呢?这时我们就会看到以下警告出现这种情况的原因是。

mljy.博客 1912

C语言:函数

仅仅是利用编译器提供给我们的头文件中的函数是远远不够我们利用来编写更高效的C程序的。人的头脑是有无限潜力的,我们可以想出很多可以由我们来定义的函数,编译器允许我们定义自定义函数。这样,就可以使我们的C程序的效率提高好几个档次。形式如下:ret_type fun_name(形式参数)代码;//ret_type是函数返回类型//fun_name是函数名//括号中放的是形式参数//{}括起来的是函数体我们可以把函数想象成小型的一个加工厂。工厂得输入原材料,经过工厂加工才能生产出产品。

2302_80177865的博客 1736

函数c语言_C语言函数习题及答案

点击蓝字关注我们FOLLOW US1.这下面程序的正确运行结果是(C)。void fun(int s[],int n1,int n2){ int i,j,t; i=n1; j=n2; while (i { t=s[i];s[i]=s[j]; s[j]=t; i++;j--; }}int main(){int a[10]={1,...

weixin_42355387的博客 7441

C语言——函数详解

C语言函数详解

sinzz的博客 2493

C语言的函数

C语言~

2403_88316985的博客 1857
上一篇: C语言之分支、跳转与循环总结
下一篇: C语言之数组总结
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值