举一个用指针作为形参的例子
时间: 2023-07-20 13:08:16 浏览: 49
下面是一个简单的示例,其中函数 `swap` 接受两个指向整数的指针作为参数,并将它们的值交换:
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a; // 保存 a 的值
*a = *b; // 将 b 的值赋给 a
*b = temp; // 将保存的 a 的值赋给 b
}
int main() {
int x = 10, y = 20;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y); // 传递 x 和 y 的地址
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
```
输出:
```
Before swap: x = 10, y = 20
After swap: x = 20, y = 10
```
相关问题
举一个用指针作为形参的例子,但是首先要先定义两个指针类型
好的,这里我定义两个指针类型:
```c++
typedef int* IntPtr;
typedef char* CharPtr;
```
然后我们可以编写一个函数,该函数接受两个指向整数的指针,并将它们的值相加,最后将结果存储在第一个指针所指向的位置上。函数如下所示:
```c++
void add(IntPtr ptr1, IntPtr ptr2) {
*ptr1 += *ptr2;
}
```
该函数使用了指针作为形参来传递指向整数的两个指针,并将它们的值相加,最后将结果存储在第一个指针所指向的位置上。现在我们可以使用这个函数来测试一下:
```c++
int main() {
int num1 = 10, num2 = 20;
IntPtr ptr1 = &num1;
IntPtr ptr2 = &num2;
cout << "Before addition: " << *ptr1 << " " << *ptr2 << endl;
add(ptr1, ptr2);
cout << "After addition: " << *ptr1 << " " << *ptr2 << endl;
return 0;
}
```
在这个例子中,我们定义了两个整数变量 `num1` 和 `num2`,并分别将它们的地址赋值给 `ptr1` 和 `ptr2`。然后我们调用 `add` 函数来将它们的值相加,并打印出结果。
可以举一个函数指针的例子吗
可以,函数指针是指向函数的指针变量,可以通过函数指针调用函数。例如,以下代码定义了一个函数指针变量p,它指向一个返回整型、参数为两个整型的函数add:
int add(int a, int b){
return a + b;
}
int (*p)(int, int) = add;
通过p调用add函数可以这样写:
int result = (*p)(1, 2);
其中,(*p)表示调用p所指向的函数,即add函数。