c语言函数定义用指针,调用用地址,为什么,并且举一个swap函数的例子 
时间: 2023-05-11 19:05:41 浏览: 40
C语言函数定义用指针,调用用地址是因为函数参数传递时,C语言采用的是值传递,即传递的是参数的值而不是参数本身。如果函数需要修改参数的值,就需要传递参数的地址,通过指针来修改参数的值。
例如,swap函数可以用指针来实现:
```
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
在调用swap函数时,需要传递两个参数的地址:
```
int x = 1, y = 2;
swap(&x, &y);
```
这样就可以交换x和y的值了。
相关问题
C语言函数参数是指针变量有什么用并举代码说明并注释每一行代码
函数参数是指针变量的用途:
1. 可以通过指针变量改变函数外部的变量值。
2. 可以通过指针变量传递数组和结构体等复杂数据类型,节省内存空间和时间。
例如,下面的代码演示了通过指针变量改变函数外部变量值的方法:
```c
#include <stdio.h>
void swap(int *a, int *b) { // 定义一个函数,参数为指针变量a和b
int temp = *a; // 将a指针所指向的值赋给temp
*a = *b; // 将b指针所指向的值赋给a指针所指向的值
*b = temp; // 将temp的值赋给b指针所指向的值
}
int main() {
int x = 5, y = 10;
printf("Before swap: x = %d, y = %d\n", x, y); // 输出交换前的x和y的值
swap(&x, &y); // 调用swap函数,传递x和y的地址
printf("After swap: x = %d, y = %d\n", x, y); // 输出交换后的x和y的值
return 0;
}
```
注释:
1. 第2行:定义一个函数,函数名为swap,参数类型为int型指针变量a和b。
2. 第3行:定义一个int型变量temp,用于存储a指针所指向的值。
3. 第4行:将a指针所指向的值赋给temp。
4. 第5行:将b指针所指向的值赋给a指针所指向的值。
5. 第6行:将temp的值赋给b指针所指向的值。
6. 第9行:定义一个主函数。
7. 第10行:定义两个int型变量x和y,分别初始化为5和10。
8. 第11行:输出交换前的x和y的值。
9. 第12行:调用swap函数,传递x和y的地址。
10. 第13行:输出交换后的x和y的值。
11. 第14行:主函数结束,返回0。
C语言函数参数是指针变量有什么用并举代码说明
函数参数是指针变量的主要用途是允许函数修改调用程序中的变量。这是因为函数参数是指针变量,它们包含变量的地址,因此函数可以通过指针访问和修改这些变量。
以下是一个简单的示例代码,说明了指针变量作为函数参数的用途:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10, y = 20;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y);
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
```
在上面的代码中,我们定义了一个名为`swap`的函数,该函数有两个参数,都是指针变量。在`swap`函数中,我们使用指针访问变量的值,并交换它们的值。
在`main`函数中,我们定义了两个整数变量`x`和`y`。我们将它们的地址作为参数传递给`swap`函数,以便在函数中修改它们的值。在交换完成后,我们打印出`x`和`y`的值,以验证它们已被正确交换。
因此,指针变量作为函数参数允许函数修改调用程序中的变量,这是 C 语言中非常常见的用法。
相关推荐
















