您的位置:首页 > 编程语言 > C语言/C++

C语言中函数的一些简单知识

2018-02-24 17:47 369 查看
1、 认识函数
A) 让代码更加容易维护,就如同文章中有各个不同段落
B) 让代码的重用性高,可以对同一个函数多次调用,不用写多次该代码
C) 如果把main函数比作公司的经理,那么其他函数就是经理下面的员工
D) 不能让main函数做几千几万行代码,要建立不用的函数分工处理任务
2、 函数的定义:定义包括:函数头和函数体
A) 函数头:函数大括号上的第一行
B) 函数体:函数大括号内的多行代码内容
C) 函数头包括:返回值类型,函数名(参数列表)
3、 参数列表:(形式参数)
A) 在函数头函数名后面的小括号内,有0到各种类型的变量
B) 形式参数就如同下属的笔记本,经理让下属做事前必须提供给相关的数据
C) 当主调函数给出的实际参数数量不足或者过多时,会出现以下错误:
Function does not take x parameters
4、返回值类型
就如同经理安排下属做事,要求或不要求下属给出结果(回报)
A) void类型就是不需要返回值,内部一般不用return语句
B) 其他类型都是需要结果:退出函数前最后执行的语句必须return结果
C) 在void类型有时也使用return语句,但是return后面不带任何内容,意思是退出函数
D) 函数返回后往往会把返回值传递给一个变量保存,这个过程就如同经理的记事本,记录下属完成任务后的结果
5.嵌套循环与函数              
         A)嵌套循环就是循环中还有循环,当一次外层循环执行一次,内层循环要执行0到多次,每次内层结束后,外层循环执行下一次循环
         B)使用嵌套循环时,内层循环和外层循环的循环控制变量不能相同
         C)一般来说,先编写内层循环之后再编写外层循环,这样思路就会比较清晰;
                  例如:编写一个程序打印20—100之间所有的素数
                  首先要编写一个循环求一个数字是不是素数,作为内层循环再编写外层循环,用20-100之间的每个数字进行测试。
如果把内层循环剥离出来,编写成一个独立的函数,那样的代码是最清晰的
 
6、函数的声明:一般情况下,当被调函数在主调函数代码的上方才能被调用,否则编译时就不能通过,这叫做代码的可见性。
         A)使用函数声明,就可以让不可见的函数被主调函数调用
         B)函数声明,就是将被调函数的函数头放在主调函数的上方,加个分号(;)即可
         C)在一个代码量很大的c语言源文件中,通常在这个源文件的头部吧所有的函数都声明一遍,就如同一本书的开头首先是目录,以便于方便的浏览这本书籍的每个章节。
 
7、入栈和退栈的过程
         A)一个执行文件的启动来源于操作系统(OS)内核(kernel32.dll)
         B)当双击执行一个文件时,就是把双击文件的路径和文件名通知到OS,OS接收到之后按照路径和文件名加载执行文件。
         C)kernel32.dll加载了执行文件后,立即调用main函数进入用户代码区
         D)main函数再调用其他函数层层进栈,退栈按照先进后出的顺序
         E)退栈过程类似弹簧弹起和压缩的过程,栈内存的使用是流动性的(无论系统函数还是用户函数)
 
8、内存分区有哪些?  栈、全局(静态)区、堆、字符串常量区。(代码区也是可以选择的答案)
         A)栈(stack):C语言函数内部变量包括局部变量和形式参数等等,在进入函数的时候自动分配,在离开函数的时候自动清除变量的存储区。
         B)全局/静态区(global/static),存放全局变量和静态变量的存储区。全局变量也称为外部变量,它是在函数外部定义的变量。全局变量是所有函数的公用变量,整个程序中任何一个函数都可任意的调用它。静态变量和全局变量被分配到同一块内存中,静态局部变量只限于定义处的函数使用,但是离开函数后数值一直保存,直到程序退出不会被清除
         C)堆(heap):由调用malloc函数分配的内存块,一般每一次malloc函数分配的内存块,最后都要对应调用一次free函数释放这个内存块。如果程序员没有释放掉,那个在程序结束后,操作系统会自动回收,并且这个程序员将被开除。
         D)常量存储区:就是存放程序内所有字符串常量的内存区域,这个内存区域上的内容不允许修改,知道程序退出为止。
 
9、全局变量和静态变量
         A)全局变量是所有函数的公用变量,整个程序中任何一个函数都可以任意的调用它
         B)静态变量和全局变量被分配到同一块内存中,静态局部变量只限定于定义处的函数使用,但是离开函数后数值一直保留,知道程序退出后才会被清除。
         C)全局变量在main函数被调用之前就已经被初始化,而静态局部变量只有当函数第一次被调用时才被初始化。之后再次调用该函数静态局部变量就不会再被初始化了,因为它要长期保存最后一次进入函数时的赋值,知道程序退出后才会被清除。
 
10、全部变量的定义和声明:
         A)全局变量定义尽量在一个源代码文件的最上方,与函数一样有可见性的问题
         B)如果全局变量在主调函数的下方,不能被主调函数可见,则可以使用全局变量的声明
         C)全局变量的声明类似于函数的声明,声明的格式是变量定义的前面加上extern关键字。
         D)全局变量声明时不可以初始化赋值,例如以下的写法是错误的:
                  Extern int g_nTest = 0;
         E) 全局变量加上static代表本文件私有,不提供给其他文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言