在c语言中,*p和**p和***p有什么区别吗
时间: 2023-08-26 10:06:48 浏览: 120
在C语言中,*p,**p和***p是指针的不同级别。
- *p是指针变量p所指向的内存单元中存储的值。
- **p是指一个指向指针变量p的指针所指向的内存单元中存储的值。
- ***p是指一个指向指向指针变量p的指针的指针所指向的内存单元中存储的值。
例如,以下代码演示了这些指针的用法:
```
int a = 10;
int *p1 = &a;
int **p2 = &p1;
int ***p3 = &p2;
printf("%d\n", *p1); // 输出 10
printf("%d\n", **p2); // 输出 10
printf("%d\n", ***p3); // 输出 10
```
在这个例子中,p1是一个指向整数变量a的指针,p2是一个指向指针变量p1的指针,p3是一个指向指向指针变量p2的指针。因此,*p1,**p2和***p3都是对变量a的间接引用,它们都会输出10。
相关问题
C语言中 **p和**pp的区别
在C语言中,`p`和`pp`通常用于指针的声明和打印。
* `p`通常用于声明一个指向指针的指针。例如,`int *p;` 声明了一个指向整数的指针。
* `pp`通常用于打印指针的值和地址。例如,`printf("%p", p);` 会打印指针`p`的地址。
两者主要的区别在于使用场景和目的。
* `p`通常用于声明一个指向特定类型的指针,而这个指针本身也是某种类型的指针。
* `pp`则主要用于打印指针的值和地址,这对于调试和了解指针的当前状态非常有用。
值得注意的是,这两种用法都依赖于指针的类型和它所指向的数据类型。在使用它们时,必须确保指针的类型正确,否则可能会导致未定义的行为。
C语言**p和*p的区别
在C语言中,`p`和`*p`是两不同的概念。
1. `p`是一个指针变量,它存储了一个内存地址。指针变量可以指向任何数据类型的内存地址。通过使用指针变量,我们可以访问或修改该内存地址上存储的值。
2. `*p`是通过指针间接引用所指向的内存地址上存储的值。它是一个解引用操作符,用于获取指针所指向的内存地址上存储的值。
简而言之,`p`是指针变量本身,而`*p`是通过指针变量间接引用所指向的内存地址上存储的值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)