有没有将变量名称转换为双指针的简短方法?

Is there a short way to convert a variable name into a double pointer?

本文关键字:方法 指针 变量名 转换 有没有      更新时间:2023-10-16

例如:

int x = 7          // x is variable name
int* p_x = &x      // p_x is a pointer to x
int** pp_x = &p_x  // pp_x is a double pointer to x.

有没有一种快速的方法可以在不使用中间变量p_x的情况下从xpp_x

编辑: 多亏了下面的评论,我意识到这样的事情实际上是不可能的,因为没有p_xpp_x将毫无意义(没有双关语(,因为它不会指向任何东西。

如果您的目标是 C99 以上的任何内容,您可以使用复合文字 - 如下所示:

int **pp_x = (int *[1]){(int[1]){7}};
int** pp_x = &p_x  //pp_x is a double pointer to x.

它是指向 x 的指针。因此,您必须拥有p_x才能拥有pp_x并且您需要始终保持p_x,您希望通过pp_x访问x