例如:就像我有一个变量char str[3]="abc";那么我可以使用这个"abc"作为另一个变量的名称(比如一个整数),这样我就可以存储任何值abc.如果是,那么在这样存储'abc'中的值时:
 int abc=123;
我可以通过引用来将abc称为变量str吗?
不,你所说的是反思,一种获取环境内部细节的方法.C目前没有内置到该语言中.
有一些方法可以实现相同的效果,例如从字符串到整数指针的映射数据结构,但它有点混乱.举个例子:
int abc, def;
char *strName[] = {"abc", "def"};
int *address[] = { &abc, &def};
:
char *key = "def";
int newVal = 42;
for (i = 0; i < sizeof (strName) / sizeof (*strName); i++)
    if (strcmp (key, strName[i]) == 0)
        *(address[i]) = newVal;
这将通过键列表,直到找到匹配的键,然后使用地址列表中的等效指针来修改变量.
但是,老实说,一旦你不得不做一些黑暗和狡猾的事情,你可以用更合适的数据结构来做.
例如,一个映射,其中值存储在实际映射中,而不是保存"外部"整数的地址.