C++函数传参*和&的区别
时间: 2024-06-11 12:05:15 浏览: 139
&的含义和用法
在 C 语言中,函数传参时使用 * 和 & 两个符号来表示不同的含义和用法。
1. *(指针符号)
在函数传参中,* 表示指针符号,用于表示一个指针变量。指针变量是一种特殊的变量,它存储了另一个变量的内存地址。当我们在函数中使用指针变量作为参数,实际上是将该变量的内存地址传递给了函数,函数可以通过该地址来访问和修改这个变量的值。
例如,下面的函数定义中,参数 a 为指针类型:
```
void func(int *a) {
*a = *a + 1;
}
```
在函数体中,我们可以通过 *a 来访问和修改传入的变量的值。使用方法如下:
```
int x = 10;
func(&x); // 将 x 的地址传递给函数
printf("%d\n", x); // 输出 11
```
2. &(取地址符号)
在函数传参中,& 表示取地址符号,用于获取一个变量的内存地址。当我们在函数中使用 & 取一个变量的地址作为参数,实际上是将该变量的内存地址传递给了函数。
例如,下面的函数定义中,参数 a 为普通的整型变量:
```
void func(int a) {
a = a + 1;
}
```
函数体中的 a 是一个局部变量,对它的修改不会影响到函数外部的变量。使用方法如下:
```
int x = 10;
func(x); // 将 x 的值传递给函数
printf("%d\n", x); // 输出 10
```
总结:
* 在函数传参中,* 表示指针符号,用于表示一个指针变量,& 表示取地址符号,用于获取一个变量的内存地址。
* 使用指针变量可以在函数内部访问和修改函数外部的变量,使用取地址符号可以将变量的地址作为参数传递给函数。
阅读全文