c - 如何在变量名中创建变量?

标签 c

<分区>

我希望这个循环将值添加到名为 coefficient1-5 的 5 个不同变量, 我知道如何使用数组来实现,但我希望变量是常规整数。

for(i=0;i<=4;i++){
    coefficient(i) = Dice();
}

我该怎么做? 谢谢!

最佳答案

您无法在 C 语言的运行时计算变量名 - 所以无法做到这一点。您需要一个数组,但如果变量本身不在数组中,您可以使用指针数组。

int coefficient1;
int coefficient2;
int coefficient3;
int coefficient4;
int coefficient5;

int *ptrs[] = { 
  &coefficient1,
  &coefficient2,
  &coefficient3,
  &coefficient4,
  &coefficient5,
};
for(i=0;i<=4;i++){
    *ptrs[i] = Dice();
}

但如果这是一个真实的案例,你自己展开这个小循环就可以了

coefficient1 = Dice();
coefficient2 = Dice();
coefficient3 = Dice();
coefficient4 = Dice();
coefficient5 = Dice();

关于c - 如何在变量名中创建变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024077/

相关文章:

c - 当源路径中有空格时,VS Code 调试失败

几个线程的临界区

c - STM32f4xx标准外设库说明

c - 在 Linux 中使用写入系统调用写入数据时出现问题

c - 在 C 程序中两次为同一个指针调用 'free' 有什么坏处吗?

c - 在处理并列情况的同时在矩阵中找到最大值 [在 C 中]

c - 将文件数据提取到 4 个单独的表中

c - 链表: how to make sorter checker in C?

c - 需要帮助理解在 C 中使用 struct 的错误

c++ - 使用 memset() 为 const char* 分配新大小