关于“main(int argc, char *argv[])”[重复]

2023-12-11

可能的重复:
main() 的参数有什么用?
int argc, char *argv[] 是什么意思?

每个程序都以main(int argc, char *argv[])定义。

我不明白这是什么意思。如果有人能解释为什么我们在程序中不使用这些参数,我会非常高兴?为什么不只是:int main()?

程序名称是以下元素之一*argv[] and argc是参数数量的计数*argv[]?发送到的其他参数是什么*argv[]?我们如何发送它们?


The arguments argc and argv of main is used as a way to send arguments to a program, the possibly most familiar way is to use the good ol' terminal where a user could type cat file. Here the word cat is a program that takes a file and outputs it to standard output (stdout).

该程序接收参数的数量argc和参数向量argv,在上面的argument c数量将是两个(程序名称算作第一个参数)并且argument vector 将包含 [cat,file,null]。而最后一个元素是空指针。

通常,你会这样写:

int  // Specifies that type of variable the function returns.
     // main() must return an integer
main ( int argc, char **argv ) {
     // code
     return 0; // Indicates that everything went well.
}

如果您的程序不需要任何参数,那么编写一个同样有效main- 按以下方式运行:

int main() {
  // code
  return 0; // Zero indicates success, while any 
  // Non-Zero value indicates a failure/error
}

在C语言的早期版本中,没有int before main正如所暗示的那样。今天,这被认为是一个错误。

On POSIX-兼容系统(和Windows),可以使用第三个参数char **envp其中包含程序向量env铁变量。参数列表的进一步变化main函数存在,但我不会在这里详细说明它,因为它是非标准的。

另外,变量的命名是习俗并且没有实际意义。坚持这一点总是一个好主意,这样你就不会混淆其他人,但定义它同样有效main as

int main(int c, char **v, char **e) {
   // code
   return 0;
}

对于第二个问题,有多种方法可以向程序发送参数。我建议你看看exec*()函数族这是POSIX-标准,但可能是easier只是使用system("command arg1 arg2"),但是使用system()通常不受欢迎,因为它不能保证在每个系统上都能工作。我自己没有测试过;但如果没有bash,zsh,或安装在 *NIX 系统上的其他 shell,system()将失败。

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

关于“main(int argc, char *argv[])”[重复] 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • 我如何才能等待多个事情

    我正在使用 C 11 和 stl 线程编写一个线程安全队列 WaitAndPop 方法当前如下所示 我希望能够将一些内容传递给 WaitAndPop 来指示调用线程是否已被要求停止 如果 WaitAndPop 等待并返回队列的元素 则应返回
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 将 FrameLayout 转换为位图

    我有一个 FrameLayout 其中包含一些图像视图和一个 EditText 我将此布局保存为内存中的图像 外部 第一次 当我在 imageviews 中设置图像时 一切都很顺利 即正在保存确切的图像 与屏幕上显示的相同 但是第一次保存后
  • Matplotlib 滚动条

    我有一个线泛化算法 并且想在图中添加一个滚动条 以增加容差 即使线变得越来越泛化 使用 matplotlib 这怎么可能 总而言之 我希望能够单击并拖动滑块 以显示线上公差效果的增加 仍然在努力解决这个问题 我只想要一个从 1 到 10 的
  • 如何将“IsDirty”属性添加到 LINQ to SQL 实体?

    我将我的实体绑定到 WPF 中的编辑表单 在 DataTemplate 中 我希望能够设置 DataTemplate 中根容器的背景颜色 以显示它已更改并且这些更改尚未提交到数据库 这是一个非常简单的示例 演示了我正在谈论的内容 请原谅错误
  • 使用 css 强制抗锯齿:这是一个神话吗?

    最近 一位客户抱怨 IE6 中系统字体的外观 基本上这个问题是 IE6 不支持字体平滑 抗锯齿 我知道你可以在操作系统设置或其他设置中打开它 但有人扔掉了这个宝石 您可以使用 pt 而不是 px 来强制 css 中的字体反锯齿 我在各种浏览
  • 使用 JHipster 将新字段添加到现有实体

    当我尝试向现有实体添加新字段时遇到问题 我运行这个命令 yo jhipster entity Libro 和我选择 BETA 是的 添加更多字段和关系 但是当我尝试使用 mvnw 编译我的项目时 我收到此错误http pastebin co
  • 托管 C++ 中 future 和 Promise 的替代方案是什么

    当使用 clr 标志编译托管 C 代码时 编译器不允许包含 我正在尝试将非托管 C 代码移植到托管 C 环境中 我看到 C 有替代方案 Task 和 TaskCompletionSource 来替代 futures 和 Promise 但我
  • 如何使用BottomNavigationBar显示活动(无法转换为片段)?

    我在显示我的活动时遇到问题 我不知道如何实现方法注意活动 to 主页片段 主页片段是由底部导航栏不执行注意活动 注意活动 public class NoteActivity extends AppCompatActivity private
  • Java多级比较器

    我正在解决一个问题 我必须从输入文件中获取这些 歌曲艺术家对 并按字母顺序排序 排序指南如下 应首先按作者姓名对歌曲 艺术家对进行排序 按艺术家排序后 如果同一艺术家有多首歌曲 也应按字母顺序排序 如果艺术家姓名以 The 开头 则出于排序
  • 如何将 int 拆分为其数字?

    如何将 C 中的 int 拆分为其单个数字 例如 我想将 23 拆分为 2 和 3 给定数字 12345 5 is 12345 10 4 is 12345 10 10 3 is 12345 100 10 2 is 12345 1000 10
  • HABTM关系查找所有记录,排除一些基于关联的记录

    我看过一些与此相关的类似帖子 但我正在努力解决这个问题 我在项目和用户之间有一个 habtm 关系 我正在尝试查找特定用户不属于的所有项目 但我不知道如何查找 我尝试过这样的事情 Project where project id user
  • C++中动态分配的链表。发生异常后如何防止内存泄漏?

    我喜欢用c 实现链表 在添加新节点时我动态分配它 如果某些分配失败 我希望我的程序停止执行 新节点 失败后 会引发异常 因此我必须在异常处理程序中显式调用析构函数 我该如何处理这种情况以防止内存泄漏 这是我写的代码 链表 h pragma
  • webcomponents.js 失败并出现错误 404

    运行与 webcomponents js 相关的 dart 应用程序时 我在控制台中看到异常 一切都按预期运行 我应该忽略这个异常吗 Failed to load resource the server responded with a s
  • 从网页中抓取文本

    我想编写一个程序来查找公交车站时间并相应地更新我的个人网页 如果我手动执行此操作 我会 访问 www calgarytransit com 输入停靠站号码 即 9510 点击 下一班车 按钮 结果可能如下所示 10 16p 154号公路10
  • 为什么 Swift 中 UInt64 max 等于 -1?

    使用 Swift 无论是在终端还是操场上 当我在新行中输入以下内容时 UInt64 max 我得到的结果值为 1 这是一个错误吗 Edit 例子 xcrun swift Welcome to Swift Type help for assi
  • 为什么 nginx 不缓存我的内容?

    我检查了缓存路径 usr local nginx proxy cache 多次访问某个网址后找不到缓存文件 我的配置 nginx conf http include etc nginx mime types default type app
  • UTF-8 编码的 html 页面显示 �(问号)而不是字符

    我在 win7 x64 上安装了标准 XAMPP 在过去的项目中 我遇到了编码问题 其中 mysql 编码与 php 编码不匹配 而 php 编码有时会以其他编码输出 html 因此我决定一致地使用 utf 8 对所有内容进行编码 我刚刚开
  • 向必须共享环境的 bash shell 发送多个命令

    我试图在这里遵循这个答案 https stackoverflow com a 5087695 343381 我需要在单个环境中执行多个 bash 命令 我的测试用例很简单 import subprocess cmd subprocess P
  • ASP.NET MVC 使用 AJAX 将模型传递给控制器

    我正在尝试通过 ajax 调用将模型传递到我的控制器 我查看了拉维亚克在以下问题中提供的答案 但无法使其发挥作用 可能的答案 当 ajax 调用运行时 我收到 MODEL 变量的未定义错误 我已经确认正在调用辅助类并返回一个字符串 是因为
  • 如何捕获/收听 Android 网络浏览器下载

    我的 Android 应用程序会监听浏览器意图 以便在用户单击某种类型的 URI 时捕获它们 更具体地说 我希望当用户单击指向 torrent 文件的超链接 例如http somewhere file torrent 请参阅下面我的应用程序
  • 关于“main(int argc, char *argv[])”[重复]

    这个问题在这里已经有答案了 可能的重复 main 的参数有什么用 int argc char argv 是什么意思 每个程序都以main int argc char argv 定义 我不明白这是什么意思 如果有人能解释为什么我们在程序中不使