c++ - 代码是否交换数组的两个数字?
问题描述
实际参数中应包含“&”以提供所需的结果,但以下代码也正确交换了数字。如何?
void swap(int *a, int *b){
int t=*a;
*a=*b;
*b=t;
}
//there is an array ar[]
swap(ar[0],ar[1]);
它应该给出一些垃圾值,但它给出了正确的答案。
解决方案
函数调用有可能实际上是调用库定义的std::swap
函数而不是您的自定义交换函数(因为类型不匹配)。
更改函数的名称并查看它是否编译。
推荐阅读
- java - 在 Android 上随机访问写入 SAF 文件
- ios - 如何使用 SQLite 数据库在 Swift 中创建多个表?
- arduino - 在一段时间不活动后启用 esp32 深度睡眠模式
- node.js - 无法将 sqlite3 编译为本机插件,Electron React Boilerplate 项目
- api - 停止所有 IP 和域请求,只有我的前端域可以访问后端
- image-processing - ffmpeg 忽略每个帧率选项,将结果锁定为 25 fps
- java - 如何计算二维数组的平均值?
- data-structures - 如何将一个代码文件链接到另一个代码文件,还是我必须将该代码复制并粘贴到该代码文件上?
- python - Backtrader 重采样到每日的问题
- python - 询问pygame背景