C语言-函数

来源:互联网 发布:经济与社会发展数据库 编辑:程序博客网 时间:2024/06/11 07:43

1 函数调用中,地址传递为什么说形参与实参占用同样的存储单元

因为实参传的是那段地址,形参接受的也是这段地址,相同的地址,当然就是相同的存储单元,存储单元就是地址的意思

2程序如何实现模块化

在程序设计过程中大多数程序要比我们之前设计的程序复杂的多,传统的设计方法是“自定向下,逐步求精”的过程。该过程就是将一个大的问题按照层次分解成多个方便解决的小问题,直至各个功能模块,每个单独的功能模块可以单独设计,最后将所有的功能模块有机的结合成完整的程序

3 main() 的返回值返回到哪里

返回给操作系统,表示程序正常退出。因为return 语句通常写在程序的最后,不管返回什么值,只要到达这一步,说明程序已经运行完毕。而return的作用不仅在于返回一个值,还在于结束函数

4 为什么有的编译器不支持void main()

有些编译器允许这种形式,但是还没有任何标准考虑接受它。标准的C语言要求main函数的返回值是int,该值是执行程序时,告知主调进程程序运行结果的一个渠道。由于大多数时候,程序运行结果可以由其它方式确定,比如程序打印信息,所以main的返回值变得不重要,于是大部分编译器都支持无返回值类型的main,这时默认返回给主调进程0值

5 二维数组如何作为函数参数使用

二维数组作形参有三种形式:

void func(int mat[][4]);传递一个二维数组,其中第二维的大小不能省略;void func(int(*p)[4]); 这里定义一个指针p,这个指针p指向的是一个数组,这个数组的长度是4,也可以这么理解,p指向的是二维数组中的每一行void func(int **p); 定义一个指针的指针,使用这种形式要注意一些问题,就是在计算每行元素的首地址时,以及具体某个元素位置的地址时候,需要进行强制类型转换才行

6 怎样让函数返回数组?

C++中函数是不能直接返回一个数组的,但是数组就是指针,所以可以让函数返回指针来实现。不能直接返回函数中定义的数组,会被释放掉。

7回调函数有哪些具体应用?

使用回调函数实际上就是在调用某个函数时,将自己的一个函数(这个函数为回调函数)

的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数。

8 有哪些变参函数?

典型的可变参数函数的例子有printf(),scanf()等

9 变参函数如何取参数?

C语言支持可变参数函数,即参数的个数可以是不定个,在函数定义的时候用(…)表示,比如我们常用的printf()等;printf函数的原型如下:

int printf(const char *format,...);

注意,采用这种形式定义的可变参数函数,至少需要一个普通的形参,比如上面代码中的*format,后面的省略号是函数原型的一部分。

10 函数声明放在主函数外和主函数内有什么区别?

放在主函数外,从它的位置往下,所有的函数都能调用该函数;

而在主函数内,只有主函数能访问该函数

原创粉丝点击