char** 与 char* c[] 访问字符串数组

2024-02-13

为什么我不能将 char** 指向 C 字符串数组?

int main(int argc, char *argv[]) {

    char* c1[] = {"Hey","Hello"};
    printf("%s",c1[1]);

} //works fine

vs

int main(int argc, char *argv[]) {

    char** c1 = {"Hey","Hello"};
    printf("%s",c1[1]);

} //error

我认为这里的混乱源于这样的信念{"Hey","Hello"}是一个数组。它不是。它根本不是一个物体。它只是一种特殊的初始化语法,可用于初始化数组。你不能用它来初始化char**因为一个char**是一个指针,而不是一个数组。它不会自动创建可以转换为指针的数组对象。

也许你把它想象成[...]Python 或 a 中的列表{ ... }JavaScript 中的对象。它根本不像那些。这些表达式实际上创建了该类型的对象,并且可以在可以采用这些对象的表达式中的任何位置使用。我们在 C++ 中使用的语法是just初始化语法。

例如,你could做这个:

const char* array[] = {"Hey","Hello"};
const char** p = array;

但是,你不能做这样的傻事:

std::cout << {"Hey", "Hello"}[1];

这里我们实际上创建了将存储指针的数组对象。只有这样我们才能将该数组转换为const char**.

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

char** 与 char* c[] 访问字符串数组 的相关文章

  • 每个托管线程是否都有自己对应的本机线程?

    我想知道是否在 Net 中创建托管线程 通过调用Thread Start 导致在后台创建一个本机线程 那么托管线程是否有对应的本机线程呢 如果是 当托管线程等待或睡眠时 是否意味着相应的本机线程也在等待或睡眠 是的 NET 线程映射到所有当
  • 如何在 .NET Framework 2.0 中模拟“Func<(Of <(TResult>)>) 委托”?

    我尝试使用这个类代码项目文章 http www codeproject com KB threads AsyncVar aspx在 VB NET 和 NET Framework 2 0 中 除了这一行之外 所有内容似乎都可以编译Privat
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler

随机推荐

  • 从 Prolog 中的列表构建复合谓词[重复]

    这个问题在这里已经有答案了 如果我在 Prolog 中有一个谓词列表 例如 flies swims 如何构建一个谓词 它是列表中所有谓词的合取 即fliesAndSwims X flies X swims X 或者 是否有一种更好的方法可以
  • 如何在 woocommerce 中按日期获取用户订单?

    我正在寻找一种标准方法来获取某个日期范围内或当月的用户订单总数 在探索 woocommerce 源代码之后 我得到的是 woo 正在使用这样的东西 order item amounts this gt get order report da
  • MSBuild - 比较 ItemGroups 元数据

    我正在尝试为我们的源树编写构建脚本 该树由 大量 解决方案组成 它们之间具有程序集引用 我创建了一个包含所有解决方案的 ItemGroup 并对该 ItemGroup 进行批处理以构建解决方案 我也需要复制some项目输出到 exes 输出
  • 为什么Java中的Object类包含受保护的方法?

    为什么对象类 https docs oracle com javase 7 docs api java lang Object htmlJava中包含受保护的方法 例如clone https docs oracle com javase 7
  • 从java项目中提取所有字符串

    我有相当多的源文件 我需要解析和提取所有字符串文字 并将它们作为播放旧的 java 常量放入文件中 例如 Label l new Label Cat 会成为 Label l new Label Constants CAT And in Co
  • Python 线程 stack_size 和段错误

    一个网络爬虫脚本最多产生 500 个线程 每个线程基本上请求远程服务器提供的某些数据 每个服务器的回复在内容和大小上都与其他服务器不同 我将线程的 stack size 设置为 756K threading stack size 756 1
  • 如何确定会话变量的内存占用量?

    另外 web config 请解释一下
  • isinstance 文件 python 2.7 和 3.5

    在 Python 2 7 中我得到以下结果 gt gt gt with open README md r as fin print isinstance fin file True 在 python 3 5 中我得到 gt gt gt wi
  • 如何为 Android 架构组件生命周期事件添加单元测试?

    我尝试为支持架构组件生命周期事件的函数添加单元测试 为了支持生命周期事件 我添加了 OnLifecycleEvent我的函数的注释 我想在该事件发生时执行某些操作 一切都按预期工作 但我想为该函数创建一个单元测试 以检查我的函数在预期事件发
  • 我需要让我的网站适合屏幕

    我已经将我的网站创建为固定布局 宽度为 1600px 但较小分辨率下的网页看起来太大了 我应该怎么做才能让它在每个分辨率下看起来都很好 感谢帮助 使用相对措施 例如width 100 您可以通过使用来进一步限制这一点min width an
  • Android:将彩色图像转换为灰度图像[重复]

    这个问题在这里已经有答案了 我正在尝试使用红色 绿色 蓝色的平均值将彩色图像转换为灰度图像 但它出现错误 这是我的代码 imgWidth myBitmap getWidth imgHeight myBitmap getHeight for
  • window.open target _self v window.location.href?

    我需要使用 JavaScript 重定向用户 哪种方法是首选方法 window open webpage htm self or window location href webpage htm 当然 第二种方法是首选 因为您没有另一个函数
  • 如何在 jQuery 中获取屏幕上可见的元素对象? [复制]

    这个问题在这里已经有答案了 我在 DOM 中有一个对象列表 它比屏幕高度区域长 我需要检测屏幕上的可见对象 只是为了制作类似时间线树视图的东西 如下图所示 我的 DOM 看起来像这样 div div Lorem ipsum div div
  • 如何在没有 MANIFEST.MF 的情况下运行 Java .jar?

    是否可以运行不包含的Java应用程序MANIFEST MF文件 当然还有静电main方法 只是缺少清单文件 并且该应用程序依赖于几个外部 jar files 如果这可能的话 该怎么做 您可以指定要从命令行运行的类 java cp yourJ
  • Numpy 数组切片返回切片数组和相应的数组索引

    我正在尝试从一个数组生成两个 numpy 数组 一个是原始数组的切片 另一个表示可用于查找生成的值的索引 我可以解释这一点的最好方法是通过示例 import numpy as np original np array 5 3 7 3 2 8
  • PostgreSQL:文本到 JSONB - 总大小超过最大值

    我已在文本字段中导入 JSON 数组 并希望将其转换为 JSONB 我收到以下错误 SQL错误 54000 错误 jsonb数组元素的总大小超过最大值268435455字节 错误 jsonb 数组元素的总大小超过最大值 268435455
  • 激活负颜色后图形奇怪地滑动

    我正在使用 Highcharts 在移动图表中显示一些实时变化的数据 每秒添加一个点 就像更新 highcharts 网站上的样条线示例 http www highcharts com demo dynamic update 为了清楚地看到
  • mysql 使用 unix_timestamp 变量进行分区

    鉴于这种 delimiter create procedure setup begin declare d datetime set d rounddate now create table s time req id int not nu
  • Django 比较模型实例是否相等

    据我所知 在单例情况下 您可以执行以下操作 spam eggs and if spam and eggs是具有所有相同属性值的同一类的实例 它将返回True 在 Django 模型中 这是很自然的 因为模型的两个单独实例永远不会相同 除非它
  • char** 与 char* c[] 访问字符串数组

    为什么我不能将 char 指向 C 字符串数组 int main int argc char argv char c1 Hey Hello printf s c1 1 works fine vs int main int argc char