C *[] 和 ** 之间的区别

2024-02-21

这可能是一个有点基本的问题,但是写 char * [] 和 char ** 有什么区别?例如,在 main 中,我可以有一个 char * argv[]。或者我可以使用 char ** argv。我认为这两种符号之间一定存在某种差异。


在这种情况下,根本没有区别。如果您尝试使用数组类型作为函数参数,编译器会将其“调整”为指针类型(即,T a[x] 作为函数参数 means exactly与以下内容相同:T *a).

在适当的情况下(即not作为函数参数),但是使用数组和指针表示法之间可能存在差异。一个常见的是在extern宣言。例如,假设我们有一个文件,其中包含以下内容:

char a[20];

我们想让它在另一个文件中可见。这会起作用:

extern char a[];

但这不会:

extern char *a;

如果我们将其改为指针数组:

char *a[20];

...同样的情况仍然存在——声明外部数组可以正常工作,但声明外部指针则不行:

extern char *a[]; // works

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

C *[] 和 ** 之间的区别 的相关文章

随机推荐

  • 如果每个点的每个坐标都是有理数,则凸包的时间复杂度为 O(n)

    证明凸包为n平面上的点可以计算为O n 如果每个点的每个坐标都是 p q 形式的有理数 并且 p 和 q 有界值 则时间 Note 这是一个家庭作业问题 我只能想到通过某种方式避免扫描所有点来使用贾维斯 马奇 也许这可以通过向固定方向投射光
  • 来自数组或列表的 MS Charts C# 数据源

    我想从二维数组中的值填充图表的数据 一列将显示 X 轴 第二列将显示 Y 轴 我做到了 但它不是从数组中读取 它给出当我运行应用程序时 我使用默认行 我找到了使用 List 的解决方案 我遇到了错误 所以如果有人可以帮助我 我将不胜感激 D
  • 我应该将静态文件放在 Jekyll 中的哪个文件夹中?

    当我在看医生时 我看到了以下文档结构 config yml drafts begin with the crazy ideas textile on simplicity in technology markdown includes fo
  • 为什么不能通过“数据执行预防”来修复 Javascript shellcode 漏洞?

    The 堆喷 http en wikipedia org wiki Heap spraying JavaScript维基百科文章表明 许多 javascript 漏洞利用涉及将 shellcode 放置在脚本的可执行代码或数据空间内存中的某
  • RecyclerView 模糊 setVisibility 函数,点击一个视图影响多个视图

    这是项目 https github com kiddBubu RecyclerViewDemo我正在努力奔跑 这是我来自 RecyclerView Adapter 类的 onBindViewHolder 的代码 Override publi
  • 服务器返回 HTTP 响应代码:URL 为 500 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 java io IOException Server returned HTTP response code 500 for URL ht
  • Django admin:缺少某些记录的内联

    我在 django 管理站点和内联方面遇到一些问题 我已经用谷歌搜索解决方案两天了 但一无所获 我有两个模型 class Measurement models Model user models ForeignKey User date m
  • 在 Android 游戏中保存高分 - 共享首选项

    最近我正在开发一个简单的android游戏 对于评分部分 我在许多网站上都提到共享偏好最能保存高分 现在 如果我需要保存游戏中不同关卡的高分该怎么办 我希望保存每个级别的前三名得分手的得分 要保存您的分数 您可以执行以下操作 prepare
  • 直接写入 std::string 内部缓冲区

    我正在寻找一种跨 DLL 边界将一些数据填充到字符串中的方法 因为我们使用不同的编译器 所以我们所有的dll接口都是简单的char 是否有正确的方法将指针传递到 dll 函数中 以便它能够直接填充字符串缓冲区 string stringTo
  • 我应该使用什么技术来编写游戏? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Google Player 游戏服务错误:无法构建示例游戏

    我无法构建示例游戏TypeANumberChallenge由 Google 提供 参见GitHub https github com playgameservices android basic samples tree master Ba
  • 从指定的屏幕区域创建位图

    我正在尝试从屏幕上的特定区域创建位图 例如 在下图中 我如何捕获下面的窗口区域并将其转换为位图 我知道您可以使用 setDrawingCacheEnabled true 但是当我想要的只是视图中的一个区域时 它会捕获整个视图 其实你可以用A
  • RStudio 演示文稿/slidify/pandoc 中的两列布局

    我正在尝试想出一个好的系统来生成幻灯片和随附的讲义 理想的系统将具有以下属性 演示文稿 PDF HTML 和讲义 PDF 布局都很漂亮 讲义应该有做笔记的空间 嵌入 R 块 图形 其他 JPG PNG 图片等 易于创作 使用命令行工具构建
  • 如何声明一个字节ArrayList

    我正在尝试做 var mahByteArray new ArrayList
  • 如何更改CUDA版本

    我在编译修改后的caffe版本时遇到了这个错误 OpenCV static library was compiled with CUDA 7 5 support Please use the same version or rebuild
  • 自由格式代码可以包含在固定格式代码中吗?

    我继承了一个固定格式文件 FFTRUN f 该文件的开头如下所示 SUBROUTINE FFTRUN 2e USE intrinsic ISO C BINDING USE FFTWmod ONLY FFTWplan fwd FFTWplan
  • 发布到 IIS 后启用 CORS 不起作用

    我将 dotnet core 2 2 Web api 应用程序托管到本地 IIS 当我运行托管网站时 网站正在运行 我正在尝试从角度登录 但它不起作用 It says 从源 http localhost 4200 访问位于 http 192
  • 如何在维护模式下使用 Nginx 提供静态资产(503)[重复]

    这个问题在这里已经有答案了 我在我的网站服务器上使用 Nginx 作为前端代理 我想用它来将用户重定向到我的 Web 应用程序 当它处于活动状态时 或当我处于维护模式时将用户重定向到维护 php 页面 这是我的服务器指令 server li
  • Node.js process.exit() 不会在 createReadStream 打开时退出

    我有一个通过 EAGI 与 Asterisk 通信的程序 Asterisk 打开我的 Node js 应用程序并通过 STDIN 向其发送数据 程序通过 STDOUT 发送 Asterisk 命令 当用户挂断电话时 Node js 进程会收
  • C *[] 和 ** 之间的区别

    这可能是一个有点基本的问题 但是写 char 和 char 有什么区别 例如 在 main 中 我可以有一个 char argv 或者我可以使用 char argv 我认为这两种符号之间一定存在某种差异 在这种情况下 根本没有区别 如果您尝