c++ 里的 * ** &
时间: 2023-09-06 12:13:01 浏览: 138
在C语言中,*是用来声明指针变量的运算符,**是用来声明指向指针的指针变量的运算符。而&则是取地址运算符,用于获取变量的地址。
具体来说,*用于声明一个指针变量,并且可以用于解引用指针,即访问指针所指向的变量。例如:
```c
int num = 10;
int *ptr;
ptr = # // ptr指向num的地址
printf("%d", *ptr); // 输出10,通过解引用ptr访问num的值
```
而**则用于声明一个指向指针的指针变量。例如:
```c
int num = 10;
int *ptr1;
int **ptr2;
ptr1 = # // ptr1指向num的地址
ptr2 = &ptr1; // ptr2指向ptr1的地址
printf("%d", **ptr2); // 输出10,通过解引用ptr2两次访问num的值
```
需要注意的是,*和**在不同上下文中可能有不同的含义和用法,需要根据具体的情况来理解和使用。
相关问题
c++怎么使用*&
`*`和`&`都是指针操作符,其组合`*&`可以用于定义一个指向指针的指针变量。
例如,假设我们有一个`int`类型的指针变量`p`,如果我们想要定义一个指向`p`的指针变量,可以使用`int** q = &p;`来实现。这里`q`是一个指向`int*`类型的指针变量,它的值是`p`的地址,也就是`&p`。
以下是一个简单的例子:
```c++
#include <iostream>
int main() {
int a = 10;
int* p = &a;
int** q = &p;
std::cout << "a = " << a << std::endl;
std::cout << "*p = " << *p << std::endl;
std::cout << "**q = " << **q << std::endl;
return 0;
}
```
输出结果为:
```
a = 10
*p = 10
**q = 10
```
在这个例子中,`a`是一个普通的`int`变量,`p`是一个指向`a`的指针变量,`q`是一个指向`p`的指针变量。通过`*`操作符可以获取指针变量指向的值,通过`&`操作符可以获取变量的地址。
c语言怎么替代c++的*&
在C语言中,可以使用指针来替代C++中的引用(&)。例如,C++中的代码:
```
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
```
可以在C语言中这样实现:
```
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
在C语言中,使用指针来传递参数,可以实现与C++中使用引用相同的效果。