C 中的指针和数组有什么不同吗?

2023-11-21

我正在编写一个小型 C 程序来进行一些数字运算,它需要在函数之间传递数组。这些函数应该接受并返回指针,对吧?

例如,这个(我知道这可能不是最有效的事情):

int* reverse(int* l, int len) {
    int* reversed = malloc(sizeof(*reversed)*len);
    int i, j;
    for (i = 0, j = len-1; i < len; i++, j--) {
        reversed[j] = l[i];
    }
    return reversed;
}

我使用指针正确吗?


您的代码片段是正确的。然而,C中的指针和数组确实是不同的。简而言之,“指向 T 类型的指针”与“T 类型的数组”不同。

请看一下C Faq讨论指针和数组以更好地理解这一点。

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

C 中的指针和数组有什么不同吗? 的相关文章

  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • Fortran 子例程返回错误值

    嘿 我正在开发一个 Fortran 程序 遇到了一个奇怪的问题 当我尝试在调用特定子例程之前直接输出数组的某些值时 我得到了正确的值 然后 我尝试在启动子例程时输出同一数组的一些值 它们都是 0 我最终在子例程之后输出数组的值 并且这些值回
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 如何添加确认对话框

    我想在编辑行之前添加确认对话框 或者如何在执行任何操作之前提示用户确认 我应该在下面的代码中使用哪个对话框
  • 在 TabNavigator 中隐藏标签 - ReactNavigation

    如何隐藏标签TabNavigator并仅显示icons 如果我执行以下操作 const Tabs TabNavigator Home screen MainHome navigationOptions navigation gt title
  • 有没有办法反转 c 中的 crypt() ?

    不确定这是否可行 但我希望能够从字符串开始 然后弄清楚输入必须是什么crypt为了得到这个字符串 或者也许这是不可能的 但这就是事情的全部目的 是的 我正在尝试的代码中有盐 根据设计意图 crypt 是一种单向哈希 正如每个人所说 这意味着
  • NHibernate - 脱水属性值时出错

    我在更新期间提交时收到错误错误脱水属性值 我已经搜索过了 它看起来类似于NHibernate 脱水属性时出错 这到底是什么 唯一的区别是 NHibernate 在提到的问题中抱怨无法解决财产问题 IssuingOffice 的值已存在于数据
  • 带有 HEAD 请求的内容长度标头?

    The http规范说关于HEAD要求 HEAD 方法与 GET 相同 只是服务器不得在响应中返回消息正文 响应 HEAD 请求的 HTTP 标头中包含的元信息应该与响应 GET 请求而发送的信息相同 如果响应HEAD请求包含一个Conte
  • 为什么泛型方法的定义中有时会省略返回类型之前的尖括号

    我正在阅读 Effective Java 第 5 章有关泛型的内容 特别是有关首选泛型方法的内容 我注意到有时方法声明中返回类型之前的类型参数 尖括号之间 有时会被省略 类似的例子还有很多 比如第二版第135页 public void po
  • 为什么我的 Rust 线​​程没有并行运行?

    我希望启动 X 线程 这将向代码中的指定服务器发出 X 请求 目前 我的应用程序正在等待每个线程和 X 请求完成 然后再启动下一个线程 我该如何去做这个异步 extern crate hyper extern crate time use
  • iOS 屏幕锁定时背景音频停止

    我正在尝试让我的音频应用程序在后台播放 到目前为止 我将 应用程序播放音频 添加到 info plist 中的 所需背景模式 中 并在启动声音生成器之前添加了以下代码 AudioSessionInitialize NULL kCFRunLo
  • 在 Android NDK 项目中包含 ICU

    我用 C 构建了一个库 希望使用 NDK 将其包含在我的 Android 应用程序中 但是 我的图书馆需要使用 ICU4C 我一直在尝试为 Android 编译 ICU 并且我在 SO 上查看了很多问题 但我仍然无法将 ICU 编译为 An
  • Xcode 4.3 如何使用 SVN 合并两个开发人员的故事板更改?

    我遇到一个问题 一个项目有多个开发人员处理同一个故事板文件 当开发人员将控制器添加到他们自己的故事板版本时 需要合并文件 当我在合并过程中查看纯文本格式的故事板时 我无法理解我应该接受哪些更改以及按什么顺序接受 是否有某种关于如何从同一故事
  • MEF = 可能会感到沮丧?

    UPDATE 当我尝试让 MEF 在我的应用程序中工作时 我遇到了越来越多的地方 我只是不明白为什么它没有在我期望的时候自动创建我的库 我认为这一切都回到了 Reed 所说的需要 MEF 来创造一切 现在 我有一个 XML 读取器类需要使用
  • 仅使用小于运算符测试等效性?

    假设我有两个 T 类型的文字 我想测试它们是否相等 但类型 T 仅实现了 小于 运算符 我怎样才能在 C 中测试这个 您可以通过几个 小于 比较和一个否定来模拟相等运算符 if t1 lt t2 t2 lt t1 printf t1 and
  • 以 tidyeval 方式删除列

    我想使用 dplyr gt 0 7 删除列向量 library dplyr data mtcars rem cols lt c wt qsec vs am gear carb head select mtcars paste0 rem co
  • 为什么此 WPF RoutedCommand 绑定上下文菜单项被禁用?

    我目前仍在摸索 WPF 并且无法弄清楚为什么此上下文菜单项被禁用
  • IdentityServer4 与外部提供商关联失败错误

    我正在尝试将 Ping Federate 集成为我的 IdentityServer4 实例的外部 OIDC 提供商 当我启动外部登录流程时 出现以下错误 System Exception Correlation failed at Micr
  • 在 .NET (C#) Web 服务中本机返回 XML?

    我意识到 NET 中的 SOAP Web 服务返回 Web 方法返回的任何对象的 XML 表示形式 但如果我想返回 XML 格式的数据 存储它的最佳对象是什么 我正在使用answer to 这个问题编写我的 XML 代码如下 XmlWrit
  • 使用 CsvHelper 可以将空格转换为可为空吗?

    我有一些非常蹩脚的 Csv 文件需要解析 我正在使用 CsvHelper 它运行得很棒 除了我有一些带有空格的行 通常我有一个双行 File 文本 SomeDouble 更多文本 好 1 23 好 不好 不好 如果我尝试将其映射到 publ
  • 用于去抖动(包括函数参数)的 Python 装饰器

    如何在 python 中编写一个去抖装饰器 它不仅对调用的函数进行去抖 而且对所使用的函数参数 函数参数组合进行去抖 去抖意味着在给定的时间范围内抑制对函数的调用 假设您在 1 秒内调用一个函数 100 次 但您只想允许该函数每 10 秒运
  • MySQLi 相对于 MySQL 的优势 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 与 MySQL 相比 使用
  • C 中的指针和数组有什么不同吗?

    我正在编写一个小型 C 程序来进行一些数字运算 它需要在函数之间传递数组 这些函数应该接受并返回指针 对吧 例如 这个 我知道这可能不是最有效的事情 int reverse int l int len int reversed malloc