指针参数和数组参数有区别吗?

2023-11-26

void method(double *v)

void method(double v[5])

这两者有什么区别吗?

第二个是否更具体,如v长度限制为 5 个元素?


当数组被声明为参数类型时,会退化为指针类型。在你的例子中,

void method(double v[5]);

Here 5根本没有发挥任何作用,就是这样微不足道那你may omit完全一样,然后写成这样:

void method(double v[]);

这与之前的声明完全相同。由于它衰减为指针,所以上面两者完全相同:

void method(double *v); //because array decays to pointer, anyway

也就是说,以下所有内容都是同一函数的声明:

void method(double v[5]); //ok : declaration 
void method(double v[]);  //ok : redeclaration of the above
void method(double *v);   //ok : redeclaration of the above

一切都完全相同。完全没有区别。

但请注意,以下内容有所不同:

void f(double (&v)[5]); 

它声明了一个函数,该函数可以采用大小为双精度的数组exactly 5。如果您传递任何其他大小的数组(或者如果您传递指针),它将给出编译错误!

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

指针参数和数组参数有区别吗? 的相关文章

  • 实体框架 - 循环更新属性

    我正在尝试找到一种方法来循环 EF 对象的属性并更新这些属性的值 更具体地说 我有 50 个字段 其中最多填充 50 个下拉列表 所有 50 个可能都需要填充 也可能不需要填充 为了解决这个问题 我有一个中继器 最多可以创建 50 个 DD
  • VBA 中的 VSTO:AddIn.Object 有时不返回任何内容 (null)

    Given VSTO 插件 An override object RequestComAddInAutomationService 它返回一个名为的类的实例Facade在我的场景中 Excel 2007 中的 VBA 宏可访问AddIn O
  • 将 try_emplace 与 shared_ptr 一起使用

    所以我有一个std unordered map
  • C# - 如何将 IntPtr 缓冲区数据保存到文件(最快的方法)?

    我使用此代码将非托管代码中的 IntPtr 缓冲区中的字节保存到文件中 这是一个简单的回调函数 private void callback IntPtr buffer int length byte bytes new byte lengt
  • 尝试将元素推入向量

    在头文件 我没有编写 中 已经定义了一个结构体 如下所示 struct MemoryMessage public boost counted base public FastAlloc explicit MemoryMessage Memo
  • c#Registry to XML无效字符问题

    我在尝试从注册表创建 XML 文件时遇到问题 在我的笔记本电脑 W7 64b 上它工作正常 生成了 xml 文件 但在另一台计算机 Xp 32b 上抛出异常 System ArgumentException 十六进制值 0x00 是无效字符
  • 是否可以用 C# 为 Android 编写应用程序?

    我们都知道Android运行Dalvik VM程序 通常开发人员用 Java 编写程序并将其编译为 Dalvik 字节码 我想知道是否有可能创建一个可以接受 C 代码并将其编译为 Dalvik 字节码的编译器 嗯 这是一种选择 或者您可以在
  • Xamarin 无法从异步获取实例

    我编写了一个通过蓝牙连接到 ESP32 的 Xamarin Forms 应用程序 现在我想从 MainPage xaml 页面的 CustomControl JoystickControl 获取值 我已经这样尝试过了 MainPage xa
  • 未定义条件编译符号

    我无法让 Visual Studio 按照我的预期运行 我创建了 2 个配置文件 一个定义了符号 FOO 另一个定义了符号 BAR 我有这个代码 static class MyClass if FOO public static strin
  • 为什么std::string在发布时是标准布局类型,但在调试时不是标准布局类型?

    include
  • 让 WIX 在项目中包含引用

    我对 WiX 和设置自定义安装程序完全陌生 所以我对问题的主题表示歉意 我有一个内部业务应用程序 日记 它构建并运行良好 因此我按照教程 官方文档添加 WiX 项目并引用日记的 csproj 然后构建并运行这个最基本版本的 WiX 安装程序
  • 标准头文件中的 C 编译器错误 - 未定义的 C++ 定义

    我正在尝试编译 C 程序 但收到许多错误 这些错误是在标准 C 头文件 inttypes h stdio h stat h 等 中遇到的 错误的来源是以下未定义的常量 BEGIN DECLS END DECLS BEGIN NAMESPAC
  • 如何使用 Caliburn.Micro MVVM 将焦点设置到控件

    我有一个表单 我想在发生某些用户操作时将焦点设置到文本框 我知道 MVVM 的处理方式是绑定到 VM 属性 但是 TextBox 没有允许这种情况发生的属性 从虚拟机设置焦点的最佳方法是什么 我创建了一个 IResult 实现 可以很好地实
  • 读取所有进程内存以查找字符串变量c#的地址

    我有 2 个用 C 编写的程序 第一个名为 ScanMe 的程序包含一个包含值 FINDMEEEEEEE 的字符串变量 以及一个值为 1546 22915487 的双精度变量 另一个名为 MemoryScan 的程序读取第一个程序的所有内存
  • 如何带参数调用外部程序?

    我想在我的代码中调用一个 Windows 程序 并使用代码本身确定的参数 我不想调用外部函数或方法 而是调用 WinXP 环境中的实际 exe 或批处理 脚本文件 C 或 C 将是首选语言 但如果使用任何其他语言更容易完成此操作 请告诉我
  • 更新插入 MongoDB 时如何防止出现“_t”字段?

    我有一个应用程序 它使用 MongoDB 的 C 驱动程序将 Upsert 插入 MongoDB 数据库 当我打电话给Update函数 我无法指定我要更新的类型 然后 t字段插入元素的类型 这是我用来更新插入的代码 collection U
  • 什么是多重重继承?

    我将以下称为 多重重新继承 直接继承一个类一次 并通过继承其一个或多个后代来间接继承一次或多次 通过继承一个类的两个或多个后代来间接继承一个类两次或多次 我想知道它是否存在以及如何明确访问嵌入的子对象 1 Professional C 2n
  • 如何在Asp.Net Core中自定义开发者异常页面?

    这常见于ConfigureStartup cs 文件的方法具有如下所示的代码 if env IsDevelopment app UseDeveloperExceptionPage new DeveloperExceptionPageOpti
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • C++20 范围太多 |运营商?

    我在这段代码中使用 g 10 2 有谁知道为什么我最后收到编译器错误std views reverse on results3 include

随机推荐

  • std::enable_if 的第二个参数有什么用? [复制]

    这个问题在这里已经有答案了 我对 std enable if 的第二个参数感到困惑 在使用 int 返回类型时 我们可以使用 template
  • 没有模拟器列表可部署 Windows Phone 应用程序

    我无法在 Windows Phone 的 VS 2012 Express 中看到任何模拟器 我的系统满足运行模拟器的所有要求 以前我可以在模拟器上调试 卸载并重新安装 VS 2012 后 我无法获取模拟器列表 并且收到错误 存在部署错误 并
  • 是否可以在 GCC/Clang 上强制进行尾调用优化?

    我正在尝试尽可能地用 C 语言编写函数风格的程序 我知道像 GCC Clang 这样的优秀编译器会默默地进行尾调用优化 但这并不能保证 是否有任何选项可以强制编译器进行尾调用优化 当然 当仅在其自身末尾调用时 Clang 13 mustta
  • liquibase 异常未知数据类型“JSON”

    我的应用程序使用jhipster与mysql和liquibase mysql版本是5 7 20 支持json列 我使用对象映射器映射json列和java对象 它可以工作 列类型是json 但是当涉及liquibase时 mvnw packa
  • 查找列表中元素的位置

    我正在寻找使用 jQuery 查找列表中被单击元素的位置 即顺序 I have ul li Element 1 li li Element 2 li li Element 3 li ul 单击 li 我想将它的位置存储在变量中 例如 如果我
  • 如何在 Sequelize 中创建准备好的语句?

    首先是否有可能 我认为应该是这样 因为它们比原始查询更安全并且可以防止 sql 注入 但我在文档中几乎找不到任何内容 sequelize prepare sequelize query 没关系 sequelize query有一个选项叫做r
  • 使用 chrono::high_resolution_clock::now() 的奇怪行为

    我一直在研究各种游戏计时循环方法 例如格伦 费德勒和德威特 由于我自己的 C 知识限制 我发现关键领域很难理解 有了这个 我开始尝试实现我自己的方法 我想到了一个尝试了解这些方法的好方法 编辑1 我使用 CodeBlocks IDE 和 m
  • 基于高度的容器查询不起作用

    我想在现代 Safari Chrome 浏览器中使用新的 CSS 容器查询 Safari 16 3 谷歌浏览器 113 0 但是 基于高度的容器查询并未按预期工作 预期结果 一旦外部容器变成蓝色 500px 屏幕高度或以下 我预计粉色方块
  • PostgreSQL - 如何将 Base64 图像字符串插入 BYTEA 列?

    我有以下 SQL CREATE TABLE Documents Id INT NOT NULL UserId INT NOT NULL Label CHARACTER VARYING 220 NOT NULL Image BYTEA NOT
  • Jquery/Javascript - 用户在 contentEditable 区域中键入时语法突出显示

    我正在我的网站上开发一个内容可编辑区域 用户可以在其中互相输入消息 div class smartText User types here div 问题是 我们将在里面有智能文本 这意味着如果用户输入 usersame在这个 div 内 u
  • 为什么WeakHashMap在GC后对值保持强引用?

    WeakHashMap 中的关键对象变得弱可达 并且map应该在GC之后删除该条目 但对值对象的强引用仍然存在 为什么 使用番石榴弱键映射观察到相同的行为 预期输出 refKey get null refValue get null 但我得
  • 在键盘上显示带有按钮的 UIView,如 Skype、Viber 即时通讯工具(Swift、iOS)

    我想创建附件视图 将其放置在输入附件视图下 通过键盘 就像在 Skype 应用程序或 Viber 中一样 我已经问过这样的问题了here 但是这个问题的建议解决方案并不是那么优雅 因为当我将滚动视图拖动到顶部时 我希望我的附件 UIView
  • DLL 文件到底是什么?它们如何工作?

    DLL 文件到底是如何工作的 它们似乎有很多 但我不知道它们是什么或它们如何工作 那么 他们有什么关系呢 什么是DLL 动态链接库 DLL 类似于 EXE 但它们不能直接执行 它们类似于 Linux Unix 中的 so 文件 也就是说DL
  • Spring文件混合形式上传

    我想将文件上传到我的 spring 3 0 应用程序 使用 roo 创建 我已经拥有以下实体 Entity RooJavaBean RooToString RooEntity public class SelniumFile ManyToO
  • 与“ws://localhost:3000/”的 WebSocket 连接失败:连接在收到握手响应之前关闭

    我选择了朋友制作的一款游戏 希望通过使用 WebRTC 和 websocket 在对等点之间发送按键数据 使其可以跨浏览器玩 但是 我在控制台中收到此错误 与 ws localhost 3000 的 WebSocket 连接失败 连接在收到
  • Scala 在解析隐式类型时如何使用显式类型?

    我有以下代码 它使用 Spray json 将一些 JSON 反序列化为案例类 通过parseJson方法 根据隐式 JsonFormat MyCaseClass 的定义位置 内联或从伴生对象导入 以及定义时是否提供显式类型 代码可能无法编
  • 无堆栈语言如何工作?

    我听说过无堆栈语言 但是我不知道如何实现这样的语言 有人可以解释一下吗 我们拥有的现代操作系统 Windows Linux 采用我所说的 大堆栈模型 运行 有时 这种模型是错误的 并且激发了对 无堆栈 语言的需求 大堆栈模型 假设编译的程序
  • 如何使用 Koush AndroidAsync 关闭/重试/管理 WebSocket?

    我正在使用 Koush 的 AndroidAsync 作为 WebSocket 客户端 我的代码遵循以下示例https github com koush AndroidAsync并有效 示例复制如下 我需要我的应用程序在启动时打开一个 we
  • 从内存加载.so文件[重复]

    这个问题在这里已经有答案了 可能的重复 从内存中打开 我在 Windows 的 DLL 文件中看到过这种情况 从内存缓冲区加载 但在 Linux 中我找不到它 而且 ld 源代码是我见过的最复杂的代码 所以 有从内存加载 so 文件的示例吗
  • 指针参数和数组参数有区别吗?

    void method double v void method double v 5 这两者有什么区别吗 第二个是否更具体 如v长度限制为 5 个元素 当数组被声明为参数类型时 会退化为指针类型 在你的例子中 void method do