学习
实践
活动
专区
工具
TVP
写文章

C语言笔记】参函数

提到参函数,我们的感觉是不是既熟悉又陌生?感觉熟悉是因为我们平时都在使用着,如我们常使用的printf()函数与scanf()函数就是典型的参函数。 因为printf()函数是参函数我们才可以根据我们的需要灵活地输出变量的值。 //给printf函数传入n个参数 我们可以根据需要给printf()函数传入n个参数,这就是参函数。 感觉陌生是因为我们没有试着创建参函数。 要创建参函数需要包含头文件stdarg.h,并且创建参函数应按照如下步骤进行: 【第一步】定义一个使用省略号的函数原型,如printf()与scanf()函数的原型为 int printf (const 2.0, 3.0, 4.0, 5.0, 6.0); printf("sum1 = %f\n", sum1); printf("sum2 = %f\n", sum2); return 0; } 参函数

47940
  • 广告
    关闭

    2023新春采购节

    领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何到达C语言的巅峰?我推荐你阅读《C语言小白怪兽》!

    ---- 8年的编程功力 + 5年的精雕细琢 + 5次大改版 + 文学级的写作能力 ---- 各位学习C语言的小伙伴,今天给大家推荐一部经典的C语言教程——C语言小白怪兽。 《C语言小白怪兽》融入了作者 8 年的编程功力,以及文学级的写作能力,耗时 5 年完成,期间经过了 5 次大改版。 作者的执着和专注让我非常感动。在这个浮躁的年代,能沉下心了写一部教程着实不易。 《C语言小白怪兽》除了讲解语法知识,还重点讲解了: 1) 学习规划 告诉读者如何学习C语言,如何避免踩坑,分析程序员的发展方向以及高薪秘诀。 2) 内存 内存是菜鸟和大神的分水岭! 《C语言小白怪兽》处处涉及内存,从内存的角度分析每一个知识点,让读者看透本质。 此外还有一个《C语言和内存》专题,从更加宏观的层面讲解程序在内存中的分布,以及计算机控制内存的秘密。 ? 3) 字符编码 本教程还会揭开C语言界的一个弥天大谎:很多老师和教材都说C语言使用 ASCII 编码,这其实是彻头彻尾的错误,而且错得非常荒谬。

    6.9K86

    C#协和逆

    直白的理解:  “协”->”和谐的”->”很自然的变化”->string->object :协。  “逆”->”逆常的”->”不正常的变化”->object->string 逆。  我个人的理解: 因为协和逆的英文太复杂了,并没有体现协和逆的不同,但是out 和 in 却很直白。 不会被修改,编译器就可以推断下面的语句强制转换合法,所以 IEnumerable<Animal> someAnimals = someDogs;  可以通过编译器的检查,反编译代码如下:  虽然通过了C# 想要回答这个问题需要在回头看看Clr via C# 关于泛型和接口的章节了,我就不解释了,  答案是不可以。  上面演示的是协,接下来要演示下逆。  In 关键字:逆,代表输入,代表着只能被使用,不能作为返回值,所以C#编译器可以根据in关键字推断这个泛型类型只能被使用,所以Action<Dog> actionDog = actionAnimal;

    53530

    了解C#的协和逆

    固定泛型类型参数既不是协,也不是逆。 你无法将 List 的实例分配给 List 类型的变量,反之亦然。 以上来自于官方文档对协、逆、不变性的解释 为啥C#需要协和逆? 4.0之前是不被支持的 IEnumerable<Foo> foo = new List<Foo>(); IEnumerable<FooBase> fooBase = foo; 因此,在这里实际上可以回答,C# 的协和逆就是主要有两种目的: 兼容性:.NET2.0就推出了泛型,而从.NET 2.0到.NET 3.5期间不支持对泛型接口中的占位符T支持隐式转换,因此在.NET4.0推出协和逆 为了支持更广泛的隐式类型的转换 ,在这里就是在泛型体系中支持 在C#中,目前只有泛型接口和泛型委托可以支持协和逆, 协(Covariance) 内置的泛型协接口,IEnumerator<T>、IQuerable<T>、IGrouping ,因为值类型不具备继承性,因此类型转换存在不兼容性 泛型接口和泛型委托可同时存在协和逆的类型参数,即占位符T 参考 泛型中的协和逆 | Microsoft Docs 《你必须知道的.NET(第2

    11410

    c# 协和逆的理解

    是什么 1.1 协指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型。如 string 到 object 的转换。多见于类型参数用作方法的返回值。 1.2 逆指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型。如 object 到 string 的转换。多见于类型参数用作方法的输入值。 泛型类型参数支持协和逆,可在分配和使用泛型类型方面提供更大的灵活性。 2. 数组也继承了这一特性,对于一个string[]类型而言 理解了上述概念后,让我们来看看协和逆的概念,这里我们只谈谈关于接口可变性中的一些内容。以下我简单给出一个接口及其实现。 也正是因此,为了防止开发者写出错误的代码,.net 设计者便用了协和逆(对应 out 和 in 关键字)来强制要求正确行为。

    1K60

    C# | 泛型委托的协与逆

    : 当类型参数仅用作输出(即返回值)时,可将类型参数标记为 out 这样就允许 Del<Dog> dogMaker = MakeDog; // MakeDog是一个返回Dog匹配委托的方法 期望返回 Animal , 而其指向的 Del<Dog> 返回了 Dog , Dog 是 Animal 的派生类,接受返回 Dog ,于是可以,调用代码可以自由的操作返回的对象的 Animal 部分 逆: 当类型参数仅用作输入(作为方法的参数类型),可将类型参数标记为in 这样就允许 Del<Animal> animal =ActOnAnimal; // ActOnAnimal为匹配此委托的方法 于是又传入了其指向了 Del<Animal> , 于是传入 Del<Animal> 了一个Animal的派生类Dog 这种在期望传入基类 <Animal> 时允许传入派生对象 <Dog> 的特性叫做逆 本文作者: yiyun 本文链接: https://moeci.com/posts/2022/01/CSharp-泛型委托的协与逆/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA

    24820

    C#2.0新增功能06 协和逆

    C# 中,协和逆能够实现数组类型、委托类型和泛型类型参数的隐式引用转换。 协保留分配兼容性,逆则与之相反。 以下代码演示分配兼容性、协和逆之间的差异。 // 分配兼容性. 有关详细信息,请参阅委托中的变体 (C#) 和使用委托中的变体 (C#)。 以下代码示例演示对方法组的协和逆支持。 有关详细信息,请参阅泛型接口中的变体 (C#) 和委托中的变体 (C#)。《C#4.0新增功能03 泛型中的协和逆》 以下代码示例演示泛型接口的隐式引用转换。 委托中的变体 (C#) 讨论泛型委托和非泛型委托中的协和逆,并提供 .NET Framework 中的变体泛型委托列表。 使用委托中的变体 (C#) 演示如何使用非泛型委托中的协和逆支持以将方法签名与委托类型相匹配。

    23610

    C++11 参模板

    1.概述 参模板(variadic template)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。 2.1参函数模版 一个简单的参函数模板。 template <class... T> void f(T... args) { cout << sizeof... 我们知道逗号表达式会按顺序执行逗号前面的表达式,返回最后一个表达式结果,比如: d = (a = b,c); 这个表达式会按顺序执行:b会先赋值给a,接着括号中的逗号表达式返回c的值,因此d将等于c。 ,参类模板的参数包展开需要通过模板特化和继承方式去展开,展开方式比参函数模板要复杂。 下面看一下展开参类模板中的参数包的方法。 2.2.1偏特化与递归方式展开 参类模板的展开一般需要定义两到三个类,包括类声明和偏特化的类模板。

    2.9K51

    C语言 | 为什么学C语言

    C语言的重要性 C语言是所有高级语言的前辈,C++,C#,Java ,都是由C语言演变过来的,包括现在很火的python,第一个Python编译器诞生,它是用C语言实现的。 所有大学理科专业的必修课程都是C语言,就算你将来不从事开发, 期末考试总不能挂科吧,除了C语言,小林不知道还有哪一门课这么普及。 我们常用的操作系统windows、linux、unix是C语言开发的,如果你想当黑客必须学C语言,你去黑别人电脑的是不是绕不操作系统。 如果你想入职阿里、腾讯这样的大厂,必须学C语言,为什么呢? C语言应用领域 操作系统:windows、linux、unix 数据库:Oracle和sql server 一些驱动程序 wps、photoshop 嵌入式开发 C语言特点 C语言简洁,灵活,有37个关键字 C语言数据类型极其丰富。 C语言程序执行效率很高,可以直接操作内存。 C语言学习目标 掌握C语言的语法规则,数组、循环、函数、指针等。 要学会一些算法,比如冒泡排序、快速排序、递归等。

    40242

    C语言笔记---(1)初识C语言

    C语言简介 C语言的历史 1972年,贝尔实验室,1972年,丹尼斯·里奇和布莱恩·柯林汉(Brian Kernighan)在B语言的基础上重新设计了一种新语言,这种新语言取代了B语言,所以称为C语言 C语言的源代码可以在任意架构的处理器上使用。 C语言的特点 1.语言简洁灵活 C语言是现有程序设计语言中规模最小的语言之一,C语言的关键字仅仅只有32个,控制语句也只有9个。 C语言是完全模块化和结构化的语言C语言对于输入和输出的处理也是通过函数调用来实现的。 C语言的版本 在C语言的发展史上,有过许多不同的版本。 这本书被C语言开发者们称为“K&R”,很多年来被当作C语言的非正式的标准说明。人们称这个版本的C语言为“K&R C”。

    27910

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • TDSQL-C MySQL 版

      TDSQL-C MySQL 版

      TDSQL-C是腾讯云自研的新一代高性能高可用的企业级数据库。云原生数据库的数据库架构将传统数据库与云计算的优势相结合,完全兼容MySQL和PostgreSQL,具有更高的性价比,更灵活的弹性扩展,可实现超百万级QPS的高吞吐,128TB海量分布式智能存储。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券