c++ - 无括号循环内以逗号分隔的代码行
问题描述
我在上课时遇到了这段代码。这是在我教授的演讲中,我认为这是一个错误,所以出于纯粹的好奇,我试图编译它。令我惊讶的是,它实际上是一个有效的代码。我尝试在网上查找它,但找不到一个明确的答案来说明它为什么会起作用。
int n, num;
scanf("%d", &n);
vector<int> arr;
arr.reserve(n);
while (n--)
scanf("%d", &num),
arr.push_back(num);
for (int i : arr) printf("%d ", i);
printf("\n");
我预计while循环会导致编译错误,但它运行顺利。它是标准的还是最近推出的?
解决方案
推荐阅读
- python - 如何仅将股票名称和实时价格导出到 .txt 文件中,而中间没有任何额外的行或不需要的数据?
- php - 从本地 php 服务器连接到远程 Phymyadmin Mysql 服务器
- html - 具有自定义高度的 HTML5 视频响应
- bitrise - 在 Bitrise 上,我可以让两个工作流程独立更新同一个 PR 上的单独 GitHub 检查吗?
- javascript - 如何在无限滚动上创建渐变背景?
- javascript - MERN Heorku 应用程序在本地工作,将数据存储在 MLAB 中,但无法使用部署链接工作
- javascript - Select2 为选项设置了错误的值
- regex - 使用正则表达式过滤字符串
- erlang - 在 Erlang 热代码重载功能中触发更新消息
- python - 函数用 3 个单独的列表踢出变量