main函数参数的argv字符串位于哪里?

2024-01-05

在C/C++中,main函数接收的参数类型为char*.

int main(int argc, char* argv[]){
  return 0;
}

argv是一个数组char*,并指向字符串。这些字符串位于哪里?它们是在堆、栈还是其他地方?


这是 C 标准(n1256 http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf) says:

5.1.2.2.1 Program startup
...
2 If they are declared, the parameters to the main function shall obey the following constraints:

  • 的价值argc应为非负数。

  • argv[argc]应为空指针。

  • 如果值argc大于零,数组成员argv[0]通过argv[argc-1]包容性应包含指向字符串的指针,这些字符串给出 在程序启动之前由主机环境实现定义的值。这 目的是向程序提供在程序启动之前确定的信息 来自托管环境中的其他地方。如果宿主环境不具备 提供包含大写和小写字母的字符串,实现 应确保以小写形式接收字符串。

  • 如果值argc大于零,指向的字符串argv[0]代表程序名称argv[0][0]如果 程序名称无法从主机环境中获得。如果值argc是 大于一,指向的字符串argv[1]通过argv[argc-1]代表程序参数

  • 参数argc and argv和指向的字符串argv数组应 可由程序修改,并在程序之间保留最后存储的值 启动和程序终止。

最后一个项目符号是最有趣的字符串值存储位置。它没有指定堆或堆栈,但它确实要求字符串可写并且具有静态范围,这使得some对字符串内容所在位置的限制。正如其他人所说,具体细节将取决于实施情况。

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

main函数参数的argv字符串位于哪里? 的相关文章

  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • 在搜索 List 时,为什么 Enumerable.Any(Func predicate) 比带有 if 语句的 foreach 慢

    最近有件事引起了我的好奇心 Why is the Enumerable Any Func
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • Qt 创建布局并动态添加小部件到布局

    我正在尝试在 MainWindow 类中动态创建布局 我有四个框架 它们是用网格布局对象放置的 每个框架都包含一个自定义的 ClockWidget 我希望 ClockWidget 对象在调整主窗口大小时相应地调整大小 因此我需要将它们添加到
  • 如何重置捕获像素的值

    我正在尝试创建一个 C 函数 该函数返回屏幕截图位图中每四个像素的 R G 和 B 值 这是我的代码的一部分 for int ix 4 ix lt 1366 ix ix 4 x x 4 for int iy 3 iy lt 768 iy i
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 当“int”处于最大值并使用 postfix ++ 进行测试时,代码定义良好吗?

    示例 未定义行为的一个示例是整数溢出的行为 C11dr 3 4 3 3 int溢出是未定义的行为 但这是否适用于存在循环的以下内容 并且不使用现在超出范围的副作用i 特别是 这是否后缀增量规格帮助 结果的值计算在副作用之前排序 更新操作数的
  • 在 C 中使用 GNU automake 中的解析器

    我是 GNU autotools 的新手 在我的项目中使用了 lex 和 yacc 解析器 将它们作为 makefile am 中的源代码会产生以下错误 配置 in AC CHECK PROGS YACC bison yacc none i
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 为什么拆箱枚举会产生奇怪的结果?

    考虑以下 Object box 5 int int int box int 5 int nullableInt box as int nullableInt 5 StringComparison enum StringComparison
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • 如何在 Android 中以编程方式锁定屏幕? [复制]

    这个问题在这里已经有答案了 可能的重复 以编程方式锁定 Android 设备 https stackoverflow com questions 4545079 lock the android device programatically
  • 在 Docker 中向 Golang 应用程序发送信号

    我正在尝试在 docker 容器内运行用 golang 编写的服务器 例如 package main import net http func main http HandleFunc func w http ResponseWriter
  • Javascript 从 UIWebView 调用 Swift

    我正在尝试从 UIWebView 中的 javascript 函数调用 iOS 10 中的 Swift 我设置了一个非常基本的项目只是为了尝试使其正常工作 代码如下 import UIKit class ViewController UIV
  • django 变量可用于所有视图

    使用 context processors 可以轻松定义一个可调用的结果变量可供所有模板使用 是否有任何类似的技术可以使变量可用于所有视图 这有可能吗 也许有一些解决方法 姜戈 2 2 蟒蛇 3 5 3 您可能想要实现自定义中间件 http
  • 如何终止 Neo4j 中当前长时间运行的查询

    如何终止 Neo4j 中当前长时间运行的查询 无需重新启动服务器 我知道我们可以在全球范围内设置查询超时 https groups google com forum topic neo4j 5ec8FThLTeo 但有时我想在服务器上执行繁
  • vbs安静而优雅的taskkill所有chrome进程

    这段代码有什么办法吗 Dim oShell Set oShell WScript CreateObject WScript Shell oShell Run taskkill im chrome exe 0 True 我希望它关闭所有正在运
  • 如何在ajax中调用Struts2 Action方法?

    如何在ajax中调用Struts2 Action方法 现在我仍然在调用servlet 有没有可能 如果有请分享 更新struts xml as
  • Gtk ComboBox 宽度基于内容

    我正在动态地将选项填充到具有条目的 GTK3 ComboBox 有些选项可能会很长 如果我的模型中有宽的项目 我希望能够使组合框更宽 有没有办法做到这一点 如果组合框可以自动扩展但可以设置上限 那就太好了 None
  • 鼠标滚轮事件与悬停控件一起使用

    在我的 C 3 5 Windows 窗体应用程序中 我有一些 SplitContainer 每个内部都有一个列表控件 停靠填充 当焦点位于这些控件之一并且我移动鼠标滚轮时 现在获得焦点的列表会滚动 我的任务是滚动当前由鼠标悬停的列表 而不是
  • neo4j 和 max 打开文件

    我在 ubuntu 上使用 neo4j 1 8M06 当我启动它时 我收到此警告 WARNING Max 1024 open files allowed minimum of 40 000 recommended 这是什么意思 如果需要的话
  • WordPress 函数获取帖子的顶级类别?

    您好 我正在尝试找到帖子的最高类别 我尝试查找任何 WP 内置函数 但失败了 例如我有这样的类别 Parent sub 1 sub 2 我在 sub 2 中有一个帖子 因此 使用 sub 2 的 ID 我试图找到本例中名为 Parent 的
  • PHP 中是否有 Java HashMap 等效项?

    我需要类似于Java中的HashMap的PHP对象 但我在谷歌搜索时没有找到 所以如果有人知道我如何在PHP中模仿HashMap 我们将不胜感激 PHP 中的数组可以具有键值结构
  • Ubuntu 上的 Java 进程一直被某些东西杀死,有人知道为什么吗?

    所以每隔几天我在 Ubuntu 上的 java 进程就会自动终止 我不明白为什么 我的盒子有 35 84 GB 的 RAM 当我启动 Java 进程时 我向它传递了 Xmx28g 参数 因此它使用的内存应该小于可用的最大 RAM 我运行 j
  • 如何检查DataFrame单元格中是否存在字符

    创建三行 DataFrame 后 import pandas as pd df pd DataFrame a 1 2 3 4 5 6 我检查是否有任何单元格等于 3 4 df a 3 4 Since df a 3 4 命令结果到pandas
  • UITableViewCell、UITextView 具有动态高度

    我需要做一个UITableViewCell其中包含大量文本 我知道我可以添加一个UITextView到我的单元格 但每个条目的文本量不同 我知道我可以控制高度UITableViewCell with CGFloat tableView UI
  • 我不明白 twitter bootstrap span 和 row

    我是 960 网格系统的大用户 我想我会尝试一下推特引导程序 http twitter github com bootstrap 但也许这是一个愚蠢的问题 你可以嘲笑我并对我投反对票 但事实是我不明白跨度和行 所以我的问题是 当我创建一个容
  • 是否可以在 omnet++/Veins 项目中使用 RInside 来受益于丰富的 R 功能

    我正在学习 R 并通过这个名为RInside https cran r project org web packages RInside index html它提供了 C 类来调用嵌入式 R 解释器 我可以按照配置后运行一些示例这篇博文 h
  • Rails ajax_pagination 找不到文件“历史记录”

    我已经安装了 ajax pagination gemhttps github com ronalchn ajax pagination https github com ronalchn ajax pagination 当我重新启动服务器时
  • 无法使用 Avro 和嵌套类注册模式

    每当 Avro 类模式中有嵌套对象时 就不会保存 总是会遇到异常 比如 org apache kafka connect errors ConnectException Tolerance exceeded in error handler
  • main函数参数的argv字符串位于哪里?

    在C C 中 main函数接收的参数类型为char int main int argc char argv return 0 argv是一个数组char 并指向字符串 这些字符串位于哪里 它们是在堆 栈还是其他地方 这是 C 标准 n125