我想问的是,是否有办法声明一个带索引的变量(我通过我的程序)并将其附加到我的变量名称。一个例子可能是:
char mq_[index] = "Typical string";
其中char的名称为mq_1
,mq_2
,等等。
这可能吗?
答案 0 :(得分:3)
没有
执行C代码时(通常)不存在变量名,因为它们会被编译器删除。
C通常不是动态的"语言,您不能生成源并在运行时对其进行评估,因为典型的运行时环境不包含C编译器。
如果您想要一个可以索引的字符串数组,请使用字符串数组和索引:
const char *strings[] = { "Hello", "these", "are", "strings" };
const int index = 2;
puts(strings[index]);
这将打印are
,即数组中的第三个元素。请记住,C数组从0开始索引。
答案 1 :(得分:1)
答案是否定的。除非声明变量extern
以便链接器需要知道它,否则变量的名称在运行时对程序完全不可用(除了可能有调试器的符号表)。
如果您尝试向变量添加索引,为什么不使用数组呢?
答案 2 :(得分:1)
您无法动态定义变量名称。在您的情况下,您应该使用数组。
char *mq[] = {
"Typical string",
"Typical string",
"Typical string"
};
printf("%s", mq[1]);