在c中生成新变量

时间:2015-01-17 21:31:10

标签: c variables

您的代码是否可以在c中生成新变量?例如,如果我创建“example_variable = 15”,有没有办法自动生成15个新变量,例如:“generated_variable_1”,“generated_variable_2”,“generated_variable_3”,一直到“generated_variable_15”?

我是c的新手,我没有对它进行适当的介绍,所以我只知道基础知识,特别是涉及到变量时。我很确定这是非常高级的东西,所以如果这个问题没有意义,我很抱歉。我对任何有关生成变量的替代方法的建议持开放态度。

我知道那里可能已有答案,但我很难找到它们,并且希望得到特定于我正在寻找的答案,而不是从我能找到的东西拼凑出我需要的东西。

2 个答案:

答案 0 :(得分:1)

正在运行的C程序根本不使用您的变量名称。这些名称对于编译器构建程序很有用,但在运行之前会被丢弃。这意味着在C中(但不在python等解释语言中):

  • 如果您重命名变量,则会获得完全相同的程序
  • 如果您执行strings <your program>,则无法看到任何变量名称(除非您保留调试符号)

因此,运行时太晚来创建新变量。在C中,变量只是编译时。当然,您可以使用数组或词典来模拟运行时变量创建,就像其他答案一样,以及一些评论者建议。

答案 1 :(得分:1)

你在谈论什么 - 在运行时生成变量 - 在C中是不可能的。原因是C是一种低级语言,并且不公开用于运行时操作的API。事实上,一旦编译完成,C程序就不会使用变量 - 值是使用内存地址直接存储在内存中的。

与您在C中可用的内容相当的壁橱是&#34;数组&#34;。要声明一个数组,你可以这样做:

int var[15];
int var2[n]; // in C99+, n is a variable saying how many elements you want in the array

您也可以使用malloc执行此操作,但这有点复杂,然后您必须释放值。