C语言中可以使用for循环来改变变量名吗?

2024-06-22

这是一个通用问题,因此我没有尝试解决的实际代码。但我想知道的是,我可以使用for循环更改C中变量的名称?例如,如果我有part1, part2, part3, part...,作为我的变量名;有没有办法将它附加到我的循环计数器,以便它会随着每次通过而增加?我尝试了一些东西,似乎没有任何效果。


在C语言中,你不能'更改循环变量的名称'但循环变量不必在编译时确定为单个变量。

例如,在 C 语言中没有理由不能这样做:

int i[10];
int j;

j = /* something */;

for (i[j] = 0 ; i[j] < 123 ; i[j]++)
{
    ...
}

或事件提供一个指针

void
somefunc f(int *i)
{
    for (*i = 0; *i<10; *i++)
    {
        ...
    }
}

并不明显why你想这样做,这意味着很难发布更有用的示例,但这里有一个示例,它使用递归来迭代可定义的深度级别数,并将所有计数器变量传递给最里面的函数:

void
recurse (int levels, int level, int max, int *counters)
{
    if (level < levels)
    {
        for (counters[level] = 0;
             counters[level] < max;
             counters[level]++)
        {
            recurse (levels, level+1, max, counters);
        }
        return;
    }

    /* compute something using counters[0] .. counters[levels-1] */
    /* each of which will have a value 0 .. max */
}

另请注意,在 C 中,实际上不存在循环变量之类的东西。在一个for声明,形式为:

for ( A ; B ; C ) BODY

表达A一开始就被评估一次。表达B在每次执行之前评估BODY并且循环语句将终止(并且不执行BODY) 如果其计算结果为 0。 表达式C每次执行后都会评估BODY。所以如果你愿意的话你可以写:

int a;
int b = /* something */;
int c = /* something */;
for ( a=0; b<5 ; c++ ) { ... }

尽管这通常不是一个好主意。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言中可以使用for循环来改变变量名吗? 的相关文章

  • 在 2 个 .c 文件之间共享函数

    dir1有dir2 file1 c和file1 h dir2 有 file2 c 现在 如果我想在 file2 c 中访问 file1 c 中定义的函数 我需要在 file1 h 中声明它并在 file2 c 中包含 file1 h 这是一
  • 如何从 std::vector 中删除元素而不调整其大小

    迭代器擦除 迭代器位置 迭代器擦除 首先是迭代器 迭代器最后 擦除元素 从向量中删除 容器可以是单个元素 位置 或一系列元素 第一个 最后一个 这有效地减少了向量 大小除以元素数量 删除 调用每个元素的 之前的析构函数 and remove
  • 在异步方法中使用时 HttpClient 标头被清空

    我正在使用 NET Framework 4 6 1 我的 Web api 中有一个控制器 其中有静态 HttpClient 来处理所有 http 请求 在 IIS 上托管我的应用程序后 大约每月一次 我的应用程序的所有传入请求都会出现以下异
  • C# Visual Studio 动态代码片段

    我正在开发一个 WinForms 项目 每天都会执行一些重复性的任务 所以我认为创建代码片段 https msdn microsoft com en us library ms165394 v vs 110 aspx会帮助我 但它仅适用于固
  • 将 WPF 属性数据绑定到变量

    我有一个 WPF 4 和 VB net 2010 中的项目 我想将媒体元素的音量属性绑定到另一个模块中的变量 请注意 变量的数据类型正确 因此无需转换 我该怎么做呢 首先 确保您的后台代码实现了 INotifyPropertyChanged
  • 解析通过asp:FileUpload上传的XML文件

    我有一个场景 用户将上传 XML 文件 我想将该文件添加到数据库中的表中 不过 困难的部分是我需要解析文件 然后将一些信息添加到一些不同的表中 显示如何获取 XML 文件的每个示例都使用 URI 来获取文件 但是如何直接从数据库获取文件 或
  • 第三方引用的 dll 未被复制来构建

    我有一个第三方 net dll 被我的 dll 类库项目 A 引用和使用 我的控制台应用程序项目 B 引用项目 A 我的问题是第三方 dll 没有被复制到控制台应用程序项目 B 的构建中 这里有什么问题呢 我的 dll 类库中引用的第三方
  • 如何循环遍历列表中除最后一项之外的所有项? [复制]

    这个问题在这里已经有答案了 Using a for循环 如何循环遍历列表中除最后一项之外的所有项 我想遍历一个列表 检查每个项目与后面的项目 我可以在不使用索引的情况下做到这一点吗 for x in y 1 If y是一个生成器 那么上面的
  • 如何让 PCRE 与 C++ 一起使用?

    这是一个新手问题 但我希望我能尽可能清楚地表达我的问题 我正在尝试用 C 进行模式匹配 我已经从以下位置下载了 PCRE 的 Win32 版本here http gnuwin32 sourceforge net packages pcre
  • WPF MVVM后台打印数据绑定问题

    我正在使用 wpf mvvm 开发一个销售点应用程序 在交易生命周期的许多阶段 都会在后台打印收据 我已经使用其他示例在后台生成和打印收据 我正在后台打印一个 UserControl 一切看起来都很棒 然后 我为该控件创建了 ViewMod
  • 除法时的小数舍入误差 (C#)

    我基本上有四个数字 比如 100 200 300 400 我需要计算概率为 100 100 200 300 400 200 100 200 300 400 等等在 当我使用小数数据类型来存储这些概率时 由于舍入问题 它们不会达到 1 在不使
  • 实体框架中的导航属性是什么

    我是实体框架的新手 当Visual Studio创建模型图时我们主要可以看到Entities Propertie和Navigation Properties这两个东西 那么这些Navigation Properties是什么 如何使用它们
  • 为什么 ASP.Net MVC Range 属性采用类型?

    我只是想知道为什么范围验证属性可以采用类型和两个字符串作为参数 这是为了根据枚举或类似的东西验证字符串吗 另外 我想做的是找到一种简单的方法来验证必须出现在枚举中的 3 个字符的字符串 有什么建议吗 谢谢 亚历克斯 我确实发现你提到的 Ra
  • 合并大文件的最佳方法是什么?

    我必须合并数千个大文件 每个大约 200MB 我想知道合并这些文件的最佳方法是什么 行将有条件地复制到合并文件中 可以使用 File AppendAllLines 或使用 Stream CopyTo 吗 使用 File AppendAllL
  • 将 R 值传递给采用 L 值的函数时出现过载歧义

    我有 2 个重载函数 一个采用 L 值 另一个采用 R 值 目的是让该函数可以像这样调用 Obj obj foo obj OR foo Obj 所以 我写了2个重载函数 template
  • 更快的 WinSock sendto()

    我使用的是 Windows Server 2008 我的程序是用 C 编写的 我在 while true 循环中使用 WinSock2 和 sendto 来发送数据包 代码如下 while true if c snd gt max c sn
  • 64 位随机生成器种子

    我目前正在运行一个具有 8 个以上管道 线程 的多线程模拟应用程序 这些管道运行非常复杂的代码 该代码取决于种子生成的随机序列 然后该序列被归结为单个 0 1 我希望在将种子从主线程传递到处理管道后 这种 随机处理 具有 100 的确定性
  • 预览MouseMove 与 MouseMove

    我有相当多的 XAML 经验 但最近我注意到我的大多数同事都使用预览鼠标移动代替鼠标移动事件 我一直用鼠标移动它对我很有帮助 但我忍不住问我什么时候应该使用预览鼠标移动什么时候鼠标移动 有什么区别 各自有什么优点和缺点等等 PreviewM
  • Unity 错误“内部构建系统错误。后端退出,代码为 -1073740791。”摧毁/杀死了我的项目

    好吧 我可能在这里夸大了 但这是真的 当我开始打开它时 该项目由于错误 内部构建系统错误 后端退出 代码为 1073740791 而被破坏 应用程序 这个项目已经在Google Play上发布了 也许和设置有关 有人可以帮忙吗 完整错误 I
  • 有关 Endian 性和 .Net 的详细信息?

    我有几个关于字节顺序的问题 这些问题足够相关 我保证将它们作为一个问题提出 1 字节顺序是由 Net还是由硬件决定的 2 如果是由硬件决定的 我怎样才能在C 中找出硬件的字节序 3 字节序是否影响二进制交互 例如 OR AND OR 或移位

随机推荐

  • sql server 恢复-登录失败

    我在 sql server 2008 R2 上有一个本地数据库并且工作正常 我的主机安装了 sql server 2012 在托管服务器上创建新数据库后 我可以使用给定的托管凭据轻松连接到空白数据库 我已经创建了 Sql Server 20
  • 更新到 0.5.2 后,按键事件在 Meteor 中的“输入”元素之外停止工作

    我刚刚发现升级到 Meteor 0 5 2 从 0 5 后 关键事件 keypress keydown keyup 的事件处理不再为我工作 其他事件如 点击 和 模糊 工作得很好 即使在示例应用程序中 这样的代码也不会执行任何操作 Temp
  • Java 文件锁定和 Windows - 锁定不是“绝对的”?

    我正在尝试在 Windows 环境中使用 Java 锁定文件FileLock http java sun com j2se 1 5 0 docs api java nio channels FileLock html我遇到了一个问题 锁定文
  • Imagemagick 合成图像反转

    我想给图像加水印 所以我使用了 compose multiply 但由于某种原因它无法按预期工作 命令 magick image jpg over png compose multiply resize 2048x2048 gravity
  • 如何撤销MySQL用户对一张表的权限?

    当我向用户授予某些特定表的权限时 GRANT ALL PRIVILEGES ON table1 TO user1 localhost IDENTIFIED BY password GRANT ALL PRIVILEGES ON table2
  • 如何转义java的SimpleDateFormat中的单引号

    我有一个像这样的日期输入日期 ts 2012 08 13 02 30 01 我相信我可以用单引号转义无效部分 但我在无效部分中有一个单引号 我该如何逃脱呢 我尝试了几种模式 但不起作用 Thanks 根据SimpleDateFormat 的
  • 使用 Carrierwave 在 Heroku 上上传大文件

    我即将开始一个业余爱好项目 我将在其中将大量文件上传到 S3 有些文件会大到 50 100MB 我想使用 Heroku 但如果需要的话可以回退到 EC2 Heroku Carrierwave S3 可以解决这个问题吗 或者文件上传有限制吗
  • 我可以编写一个返回函数的函数类型吗?

    以下内容在 gcc 和 clang 上均无法编译 include
  • 为什么图标按钮不居中?

    我正在开发 Flutter 应用程序 但我不明白为什么我的图标按钮没有位于页面中间的中心 我将代码包装在Center 这是我的页面 https i stack imgur com I08dJ jpg https i stack imgur
  • 在 JavaFX 图表中添加一条线

    我在 JavaFX 中的定义位置添加一行时遇到问题 该线必须是一条恒定线 如下所示 如何向 JavaFX 图表添加价值标记 https stackoverflow com questions 15615881 how to add a va
  • @Valid注释在Spring Boot中不起作用

    这是场景 一个控制器注释为 RestController and a PUT方法 其 RequestBody论证需要得到验证 我用 Valid参数上的注释和 NotNull Minbean 字段上的注释 但它们不起作用 代码在这里 豆子 p
  • 如何检查 Kubernetes 对象是否已完全删除?

    我正在尝试创建一个自动化管道 该管道将在命名空间上一个接一个地运行多个 Pod 当前的问题是 在运行之间我想等待一个 Pod 完全删除 然后再运行下一个 有什么方法可以检查给定的 Pod 是否已完全删除 当前脚本 kubectl delet
  • 如何动态调整 UITableViewCell 高度

    我有经典的分组 UITableView 每个单元格内都有可编辑的 UITextView 该文本视图可以是单行或多行 我希望单元格在用户写入并且文本开始新行时增加其高度 我的问题是 我是否需要重新加载整个表格才能增加单元格的高度 难道就没有其
  • 在VBA中搜索字符串中包含小数的数字

    因此 我正在开发一个项目 该项目的输入来自一个相当笨重的数据库 我对它提供给我的数据类型的控制权为零 它基本上给了我一个字符串 其中包含数字 包括小数 取0 5 Tab每日口服 2 次 每当它说制表符时 我想获取制表符之前的数字并将其转换为
  • 在 Jupyter Notebook 中找不到来自 Conda env 的包

    我创建了一个名为 imagecraper 的环境并用它安装了 pip 然后我继续使用 pip 安装一个名为 ImageScraper 的包 gt gt activate imagescraper imagescraper gt gt pip
  • Bootstrap:垂直表单内的水平字段

    我希望使用 Bootstrap 在 垂直样式 表单中添加一些 水平样式 字段 我怎样才能做到这一点 如果可能的话 您可以利用 Bootstrap 的现有类 checkbox inline 以获得您正在寻找的效果 使其看起来正确的关键是指定p
  • 在 Mac osx 10.10.2 上使用 Python 2.7.9 Anaconda 2.2.0 编译 igraph 的 C 核心时出现问题

    我想知道是否有人遇到过类似的问题并找到了解决方案 我正在尝试在 Mac osx 10 10 2 上使用 Python 2 7 9 Anaconda 2 2 0 安装 igraph 我设法brew install homebrew scien
  • 无法从命令行访问 mvn 命令?

    我尝试过访问mvn从命令行 安装路径 C Program Files Apache Software Foundation apache maven 3 1 1 用户变量 M2 M2 HOME bin M2 HOME C Program F
  • 气流 sla_miss_callback 函数未触发

    我一直在尝试获取松弛消息回调以在 SLA 未命中时触发 我注意到 SLA 未命中已在 Airflow Web UI 中成功注册 网址为slamiss list on failure callback工作成功 但是 那sla miss cal
  • C语言中可以使用for循环来改变变量名吗?

    这是一个通用问题 因此我没有尝试解决的实际代码 但我想知道的是 我可以使用for循环更改C中变量的名称 例如 如果我有part1 part2 part3 part 作为我的变量名 有没有办法将它附加到我的循环计数器 以便它会随着每次通过而增