C语言函数与指针实战:<conio.h>常用函数解析

需积分: 34 4 下载量 19 浏览量 更新于2024-07-13 收藏 112KB PPT 举报
"C语言编程实践中的函数与指针使用" 在C语言编程中,函数是组织代码和重用代码的基本单元。本节将探讨 `<conio.h>` 中常用的几个函数,以及函数声明、定义、调用和参数传递的相关概念。 `<conio.h>` 是一个非标准库,主要在DOS环境下用于控制台输入输出操作,它包含以下几个函数: 1. `int getch(void)`:获取用户输入的一个字符,不显示回车。 2. `int putch(int c)`:向屏幕输出一个字符。 3. `int kbhit(void)`:检测是否有键盘按键被按下,若无则返回0,有则返回非0。 4. `void gotoxy(int x, int y)`:设置光标位置到指定的坐标(x, y)。 5. `int wherex(void)` 和 `int wherey(void)`:返回当前光标的x和y坐标。 函数定义和声明是C语言中必不可少的部分。函数定义包含了函数的具体实现,而函数声明则告诉编译器函数的存在及其参数和返回类型。例如,以下是一个简单的函数定义和声明: ```c // 函数定义 int add(int x, int y) { return x + y; } // 函数声明 int add(int, int); // 参数名可以省略 ``` 函数声明通常在需要使用该函数但其定义在后面的代码中时使用。对于外部函数,即定义在其他C文件中的函数,声明时需要加上 `extern` 关键字,如: ```c extern int add(int x, int y); ``` 函数调用可以单独进行,也可以作为其他函数的参数,如: ```c int iSum = add(123, 98); // 单独调用 printf("Sum=%d\n", add(789, -56)); // 作为参数 ``` 函数参数传递遵循值传递原则,这意味着函数内部对形参的修改不会影响到实参。例如,下面的 `swap` 函数试图交换两个整数,但未能成功: ```c void swap(int x, int y) { int t; t = x; x = y; y = t; } ``` 这是因为在值传递中,形参 `x` 和 `y` 是实参 `a` 和 `b` 的副本,对形参的改变不影响实参。要实现交换,我们需要通过指针来修改实参的值: ```c void swap(int* x, int* y) { int t; t = *x; *x = *y; *y = t; } ``` 现在,当调用 `swap` 函数时,传入的是 `a` 和 `b` 的地址,函数内部通过指针修改了它们的值,从而实现了交换。 总结,理解和熟练掌握函数的声明、定义、调用以及参数传递机制,特别是指针在参数传递中的作用,对于编写高效、可维护的C程序至关重要。在实践中,常将函数接口声明放在头文件(h文件)中,实现放在源文件(c文件)中,以实现模块化和解耦合。