来自变量名的指针

Pointer from Variable Name

我在链表中​​用字母 A 到 H 定义了节点,如下所示:

A = (struct node*) malloc(sizeof *A);

我在一个字符串中扫描,该字符串命名下一个节点和要将其更改为的变量的名称。因此,如果我写“0B”,我希望它采用字符 'B' 并指向具有变量名称 B:

的对象
state->zero = B;

无需显式编写函数,其中我有一系列 if 语句,可根据输入将文本输入转换为指针输出。

我该怎么做?

#include <stdio.h>

struct node
{
   char buf[16];
};

int main() 
{
   node A;
   node B;
   node C;
   node  D;
   node  E;
   node  F;
   node  G;
   node  H;
   char  c;    
   node *nodes[] = {&A, &B, &C, &D, &E, &F, &G, &H};


   printf("enter character (Q) to quit: ");
   while ((scanf(" %c", &c) == 1) && (c != 'Q')) 
   {
      if (c >= 'A' || c<='H') {
         node* mynode = nodes[c - 'A'];  
         printf("mynode %p\n", mynode);
      } else {
         printf("Invalid\n");
      }
      printf("enter character (Q) to quit: ");
   }
   return 0;
}