变量名称的指针

时间:2015-03-09 17:10:34

标签: c pointers linked-list

我已经在链接列表中定义了字母A到H的节点,如下所示:

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

我在一个字符串中扫描,该字符串命名下一个节点,并将变量的名称更改为。所以如果我写“0B”,我希望它取字符'B'并指向具有变量名B的对象:

state->zero = B;

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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

#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;
}