是否有将变量名转换为双指针的简便方法?

时间:2018-10-08 09:00:03

标签: c++ c pointers

例如:

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.

是否有一种无需使用中间变量x就能快速从pp_x转到p_x的方法?

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

2 个答案:

答案 0 :(得分:6)

如果您要定位C99以上的内容,则可以使用复合文字-如下所示:

int **pp_x = (int *[1]){(int[1]){7}};

答案 1 :(得分:4)

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

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