字符串初始值设定项和只读部分

2024-02-12

假设我有一个数组(函数的局部数组)和一个指针

char a[]="aesdf" and char *b="asdf"

我的问题是在前一种情况下字符串文字是否"aesdf"存储在只读部分,然后复制到本地数组或者类似于

char a[]={'a','e','s','d','f','\0'}; ?

我认为在这种情况下,字符是直接在堆栈上创建的,但在之前的情况下(char a[]="aesdf") 将字符从只读部分复制到本地数组。

“aesdf”会在可执行文件的整个生命周期中存在吗?


从抽象和形式的角度来看,每个字符串文字都是一个独立的无名对象,具有静态存储期限。这意味着,初始化char a[] = "aesdf"正式创建文字对象"aesdf"然后用它来初始化独立数组a,即它不等于char *a = "aesdf",其中指针直接指向字符串文字。

然而,由于字符串文字是nameless对象,在char a[] = "aesdf"变体没有办法访问独立的"aesdf"初始化之前或之后的对象。这意味着您无法“检测”该对象是否确实存在。该对象的存在(或不存在)不会影响程序的可观察行为。因此,实现具有消除独立的所有自由。"aesdf"对象并初始化a数组以任何其他方式导致预期的正确结果,即char a[] = { 'a', 'e', 's', 'd', 'f', '\0' } or as char a[] = { 'a', 'e', "sdf" }或作为其他东西。

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

字符串初始值设定项和只读部分 的相关文章

  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 在Linux中,找不到框架“.NETFramework,Version=v4.5”的参考程序集

    我已经设置了 Visual studio 来在我的 Ubuntu 机器上编译 C 代码 我将工作区 我的代码加载到 VS 我可以看到以下错误 The reference assemblies for framework NETFramewo
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 为什么从字典中获取时会得到 Action<> 的克隆?

    我有以下字典 private Dictionary
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 这个可变参数模板示例有什么问题?

    基类是 include
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • C#:背景颜色问题

    我在 C 中遇到背景颜色问题 由于某种原因 它们根本无法工作 具体来说是 System Windows Forms Panel 控件 设置 BackColor 属性不会执行任何操作 我所拥有的一切都是灰色的 我所做的一切努力都不会改变它 有
  • 在 shapefile 后面绘制栅格

    如何在 shapefile 对象后面绘制 光栅 对象 两者都可以单独绘制 但这些点不会在栅格上绘制 require rgdal require maptools require raster myproj proj utm zone 12
  • 将 webGL html 转换为 SVG

    我正在使用 R 以及 Misc3d 和 rpanel 库 在 webGL 中创建 3D 图像 然后我需要通过 Latex 将图像嵌入到 PDF 中 3D 图像渲染良好并且看起来很棒 但我想我需要将 webGL HTML 文件转换为 SVG
  • 打字动画:删除字符

    下面是一个打字动画 它以固定的时间间隔将数组中的字符添加到文本字段的文本中 IBOutlet weak var textFieldMain UITextField var myText Array Hi I m Cesare charact
  • 如何将 unsigned char[] 转换为 std::vector

    我正在尝试将其传递给项目的另一部分 该部分需要它是一个向量 unsigned char vch 65 unsigned int size const return GetLen vch 0 const unsigned char begin
  • 在 C# 中“禁用”文本框的 MaxLength 属性

    我目前正在开发 Windows 窗体应用程序 我需要一个 TextBox 它不将输入大小限制为Int32 MaxValue 问题是MaxLength is an Int32财产在TextBox我当然不能设置一个大于该值的数字作为其值 理想情
  • 为什么在 Pubspec.lock flutter sdk 中版本为:“0.0.0”?如何安全锁定flutter版本?

    我正在帮助调试一个测试游戏应用程序 我对包裹进行了深入研究 我仍然感到困惑并且无法找到有关堆栈溢出和官方文档的正确文档的一件事 是显示的代码行颤动版本 0 0 0 但显然不是 In pubspec lock所有软件包都是最新的 如下所示 d
  • 跨会话的静态变量

    在 ASP NET 中 如果我声明一个变量 或对象 静态 或者如果我创建一个单例 我可以让它在多个用户的多个会话中持续存在 它在一个server范围 这样我就不必在每个请求时都初始化它 PHP有这样的功能吗 谢谢 您可以设置 APC 并使用
  • 运行“npm run”时将参数传递给“node”可执行文件

    我想跑npm run build 但我必须增加堆栈大小 例如 stack size 1500 我怎样才能将它传递给npm 通常我会跑node stack size 1500 some script js some arg 假设我无法编辑pa
  • Regd : Android Nougat 中接听电话的支持

    我想在 Android Nougat 中实现接听电话功能 Google Nexus 5x 不支持接听电话 我们尝试使用代码 Runtime getRuntime exec input keyevent Integer toString Ke
  • SSL 证书验证失败 - 在 Python Selenium 框架中使用 WebDriverManager 时

    我正在使用 Python Selenium 框架 在这里 为了启动 Chrome 浏览器 我尝试使用 WebdriverManager 来获取最新版本的 Chrome 驱动程序 基于浏览器版本 而不是提供 chrome 二进制 chrome
  • 同一字符串的 SHA256 不同值

    我正在生成以下字符串的 SHA256 billerid MAHA00000MUM01 authenticators parameter name CA Number value 210000336768 customer firstname
  • 有什么好的 PDF 导出过滤器可以与 Fast Report 配合使用吗?

    我最近发现 Fast Report 的 PDF 导出过滤器导出的 PDF 在 Mac OSX iOS 和 Android 设备中无法正确显示 Fast Report 告知他们的 pdf 实现仅支持 Windows 他们无法透露他们正在开发的
  • 选择/取消选择特定下拉选项时切换隐藏的 div

    大家好 我有一个简单的问题 对于有 Jquery 和 Javascript 经验的人来说应该很容易 我希望在表单中的下拉字段下方有一个隐藏的 div 当选择某一特定选项时 将显示隐藏的 div 我还希望它在选择任何其他选项时消失 我将此用作
  • 错误:com.google.android.gms.ads 包不存在

    我的 Android 应用程序运行良好 API 15 直到我想包含 Google 广告 虽然 google play services jar 位于我的项目库中并且包含 com google android gms ads 但调试器会出现错
  • Spring会将内容保存在内存中还是存储在磁盘中?

    当从浏览器上传一个大小为 100 MB 的文件时 Spring 会将整个数据保留在内存中或暂时存储在磁盘中 在阅读了 Spring 文档之后 我知道如何设置临时目录 但我想知道如果我不提及这一点会发生什么 我有以下声明
  • 多次加密密码真的会更安全吗? [复制]

    这个问题在这里已经有答案了 可能的重复 双重哈希 密码是否比仅哈希一次更安全 https stackoverflow com questions 348109 is double hashing a password less secure
  • 资产文件project.assets.json没有“net6.0”的目标 - VS2022

    就在几天前 更新到 Visual Studio Community 2022 v17 2 从 v17 1 6 后出现此错误 错误NETSDK1005 资产文件 C XXXXXX Web obj project assets json 没有
  • 底部导航视图:更改应用程序启动时默认突出显示的选项卡

    如上所示 我有这个按钮导航视图 当我启动我的应用程序时 默认情况下我的 类别 选项卡会突出显示 但我想在启动我的应用程序时突出显示我的 主页 选项卡 任何人都可以帮助我摆脱它 尝试这个用法setSelectedItemId 你的方法Bott
  • 字符串初始值设定项和只读部分

    假设我有一个数组 函数的局部数组 和一个指针 char a aesdf and char b asdf 我的问题是在前一种情况下字符串文字是否 aesdf 存储在只读部分 然后复制到本地数组或者类似于 char a a e s d f 0