簡體   English   中英

變量名稱指針

[英]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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM