如果***p = 123要实现***p输出123这个值,需要申请空间
时间: 2023-08-08 22:06:47 浏览: 90
C++-面试题01-无答案版
在C语言中,如果你想要通过`***p`来输出值为123的变量,你需要先申请相应的内存空间。这可以通过使用指针和动态内存分配的方式来实现。下面是一个示例代码,演示了如何实现这个目标:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int ***p;
// 申请内存空间
p = (int ***)malloc(sizeof(int **));
*p = (int **)malloc(sizeof(int *));
**p = (int *)malloc(sizeof(int));
// 设置值
***p = 123;
// 输出值
printf("***p = %d\n", ***p);
// 释放内存空间
free(**p);
free(*p);
free(p);
return 0;
}
```
在这个示例中,我们首先声明了一个指向指针的指针的指针 `***p`。然后,我们使用`malloc()`函数动态地分配内存空间来存储 `p`、`*p` 和 `**p`。接着,我们将123赋值给`***p`所指向的变量。
最后,我们使用`printf()`函数输出`***p`的值为123。注意,在使用完动态分配的内存空间后,需要使用`free()`函数释放相应的内存空间,以避免内存泄漏。
需要注意的是,这个示例只是为了演示如何实现通过`***p`来输出值为123的变量,并不是在实际开发中常见或推荐的用法。通常情况下,我们会使用更简洁和可读性更高的方式来处理变量和指针。
阅读全文