操作argc, argv的经典写法
[问题]
我在看boost源代码的时候看到如下的代码,
template<class charT>basic_command_line_parser<charT>::basic_command_line_parser(int argc, const charT* const argv[]): detail::cmdline(// Explicit template arguments are required by gcc 3.3.1 // (at least mingw version), and do no harm on other compilers.to_internal(detail::make_vector<charT, const charT* const*>(argv+1, argv+argc+!argc))),m_desc(){}
不明白里面的
argv+argc+!argc
是干什么用的, 请高手指教,谢谢
附上to_internal函数:
template<class T> std::vector<std::string> to_internal(const std::vector<T>& s) {std::vector<std::string> result;for (unsigned i = 0; i < s.size(); ++i)result.push_back(to_internal(s[i])); return result; }
[答案]
一般而言,argc表示参数个数,argv表示参数数组,argv[0]表示程序自己的名称
如 运行程序名为z1.exe 带参数 为字符串,将字符串转为大写输出
命令行输入 z1 AbcD9
这里argc =2, argv[0]="z1" ,argv[1]="AbcD9"
!argc表示逻辑关系
如果argc=0 !argc=1
argc=0 !argc=1
argv+argc+!argc表示命令行的最后,如argc=2,则将指针移到argc[2];如果argc=0,指针移到argv[1]。
相当于char str[5];中的str[5]
转载于:https://www.cnblogs.com/time-is-life/p/9133324.html
操作argc, argv的经典写法相关推荐
- glutInit(argc, argv); glut初始化API
int main(int argc, char **argv){} int argc 和 char **argv 传递 到 你的自定义函数,再传递给 glutInit(). ------------- ...
- CMake中的ARGC ARGV 和ARGN参数意义
编写或者查看一些开源cmake文件中经常遇到在宏(macro)和函数中经常会遇到ARGC ARGV 和ARGN等参数,该参数为cmake中专用变量,分别表示宏或者函数参数中的特殊意义. ARGC AR ...
- php ci sql性能时间,Codeigniter操作数据库表的优化写法总结
用codeigniter也有一段时间了,一直没有做什么总结.现在总结一些Codeigniter操作数据库表的优化写法,虽说不全,但是也确实可以帮助那些刚刚上手CI的同学. 链接数据库 复制代码 代码如 ...
- SurfaceView的经典写法
SurfaceView的经典写法 package com.example.test;import android.content.Context; import android.graphics.Ca ...
- argc, argv 到底是干啥用的?
文章目录 前言 分析 初探类型 文件IO 多个文件IO 自定义格式 总结 前言 在旧版本的IDE中新建一个C/C++源文件,你可能会看到这种样子的main函数 int main(int argc,ch ...
- argc,**argv
main函数的参数argc,argv用于 取得命令行参数 int main(int argc,char **argv) 或 int main(int argc, char *argv[]) argc是 ...
- 关于C++中的argc,argv的使用方法
想必很多人都好奇C++中的int argc 和 char **argv .那我们今天来看看argc,argv的使用方法 1,int argc argc 实际上指命令行接受的参数个数, 比如说,这个程序 ...
- main函数的参数-argc,argv介绍
在main函数的定义形式中,会涉及到argc,argv以及envp参数(参考上一篇:C程序main函数https://blog.csdn.net/m0_52892985/article/details ...
- c语言中命令行参数argc,argv[]详解
argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...
最新文章
- Discuz X2下tag伪静态详细设置方法
- 实现主成分分析和白化
- html action不起作用,Html.ActionLink做为按钮或图像,而不是连接
- IBASE and ES change pointer
- gwt-2.8.2下载_GWT EJB3 Maven JBoss 5.1集成教程
- [ZJOI2005]午餐
- Android开发中如何调用摄像头的功能
- 黑苹果声卡、显卡、网卡驱动教程
- CodeMirror实现代码对比功能
- 解决weka打开不了package manner的方法!
- macOS:删除 MDM 配置描述文件
- springboot easypoi excel导出功能
- 2020研究洞察:新消费品牌的8大增长驱动力
- 苹果电池显示维修_苹果财大气粗:维修换电池?直接给你换个机
- N阶幻方入门算法及图解
- 查看phpinfo方法
- python技巧 黑魔法指南笔记
- CSS和JS实现内容折叠/展开效果
- CH9344 Windows驱动安装与GPIO使用教程
- 报告显示,36%“铅衣侠”工作强度超996上班族
热门文章
- mysql 删除 修改密码_MySQL新建用户,授权,删除用户,修改密码
- 蓝桥杯 ALGO-139 算法训练 s01串
- 蓝桥杯 BASIC-4 基础练习 数列特征
- 联合索引会创建几个索引_联合索引在B+Tree上的存储结构及数据查找方式
- Jenkins服务器磁盘空间爆满问题解决
- java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection 解决
- Docker-CE 入门
- 软考网络工程师--知识产权与标准化
- javascript变量作用域一点总结
- 循环中的continue功能