魔术师般的 函数

目录 :1函数定义;     2函数分类;   3库函数 ;   4自定义函数;

1函数的定义:在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部分代码, 由一个或多个语句块组 成。它负责完成某项特定任务,而且相较于其他代 码,具备相对的独立性。 一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常被集成为软 件库。

2函数的分类:  库函数(基础而又必要)              自定义函数(灵活而有有趣)

3库函数:

              (1) 即C语言自带的函数(引用前必定引用头文件#include <        >   )11

              (2)作用在于作为基础撰写程序,以及自定义函数,

                       旁批:  库函数种类繁多,(都背过??不存在的(本人觉得要是都背过还不如背英语单词)),而对于库函数的学习方法在于了解,使用时能用就行

              (3)  学习库函数

首先使用网站printf - C++ Reference (cplusplus.com)学习了解自己想知道的库函数(MSDN也可以);

下拉 会有例子

 

当然以上是最基本的使用方法,当然其他没说到的地方大家可以自己看看(并且本人建议用英文模式,原汁原味并且练习英语)

总结:库函数必须知道的一个秘密就是:使用库函数,必须包含 #include 对应的头文件。 以上例子目的是掌握库函数的使用方法。

4.自定义函数(因为库函数里面有一定的局限性有的操作不能一部到位所以出现了自定义函数)

(1)区别和相关:自定义函数和库函数一样,有函数名,返回值类型和函数参数。 但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。

(2)基本组成部分:

 返回类型就是想int char...                   函数名:自己起,想叫什么叫什么,但是最好起点有意义的(例如Max函数:求最大值函数)                    参数:就是自己想输入的东西(想要进行改变操作的初始值)         结构体:执行改变操作

          以组装汽车的工厂生动的比喻就是:返回类型就是决定你是干什么的,有关汽车的, 函数名就是你工厂的名字,参数就是零部件  结构体就是工厂的加工过程。

   

实例:

拓展:(   -1-?-2-:-3-      这个操作符是判断1是否成立,成立执行2.不成立执行3) 

红框内的代表不需要返回。

(3)函数的参数

                 分类:

         形参 (自定义函数括号内的量(例如上面的x y)(形式参数是指函数名后括号中的变量)) 

       准确定义   :形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内 存单 元,即试用前不占内存),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。

         实参(主函数内调用函数表达式,表达式中的量(例如上上个图片内的num1,num2)(实参可以是:常量、变量、表达式、函数等。))

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

(4)函数的调用

           分类:

               传值调用 :函数的形参和实参分别占有不同内存块,对形参的修改不会影响实参。(这个更像是复制一份在干完任务,告诉结果)

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

          原因:

              形参实例化之后(也就是使用时),其相当于实参的一份临时拷贝(内容的复制粘贴,)。但是它们所占的地址不同 (这点非常重要)。

            进而引出倘若写函数不同变量代表即为传值调用,若在使用时带上取地址操作就是传址调用,

             实例:先打印变量a ,b 再把两者互换。

void Swap1(int x, int y)
{
 int tmp = 0;
 tmp = x;
 x = y;
 y = 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;
}

             这样做的结果时两次打印结果一样没有区别。

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;
}

这样就实现了效果。先打印变量a ,b 再把两者互换。

而原因就在于第一段代码是取值调用    第二个为取址调用。

                   讲到这,同学们应该迫不及待取尝试了,对了当编程出错的时候大家可以进行调试,f10为调试函数,实在不行就fn+f10;   

好了这就是我要分享的内容,谢谢大家观看,小生笔法生涩,还望大家多多包涵,期待大家提出问题点,我会一一回复,并解决问题。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
pq分区魔术师是一个非常有才华的魔术师,他以独特的pq分区技巧而闻名于世。pq分区是一种将物体分割为两个部分的魔术技巧,其中一个部分可以自由地移动,而另一个部分则似乎消失了。这个魔术师在表演时会使用特殊的道具,在观众面前展示出惊人的魔术效果。 魔术师开始表演时,他会展示一个看起来普通的鸽子笼。观众们可能会怀疑,这只是一个普通的道具,并没有什么特别之处。然而,当魔术师开始使用pq分区技巧时,观众们会被他的技术深深吸引。 魔术师先将鸽子笼放在一个透明的箱子中,并且在观众面前展示鸽子笼是完整的。然后,他突然将鸽子笼分成两个部分:一个是鸟巢,另一个是笼子。观众们会惊讶地发现,在分割后,鸟巢可以自由地移动,而笼子部分似乎消失了。 接下来,魔术师会展示不同的变化。他可以将鸟巢和笼子重新组合在一起,然后再次将它们分割。每一次,观众们都会被他巧妙的手法所吸引,感叹他的技巧之高超。 看似不可能的事情在魔术师的手中变得可能,观众们为他的表演着迷。他的pq分区技巧展示了他对细节的精确掌控和巧妙的手法,使得他成为了一个备受瞩目的魔术师。 总之,pq分区魔术师pojieban以其独特的技巧和高超的手法,在魔术表演中引起了广大观众的兴趣和好评。他的表演令人难以置信,并让人不禁丧失了对现实的理性思考。这是一位令人赞叹的魔术师,他的表演给人们带来了无尽的惊喜和欢乐。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值