博客
关于我
C语言/C++ main函数参数argc和argv不是const的原因
阅读量:594 次
发布时间:2019-03-09

本文共 358 字,大约阅读时间需要 1 分钟。

 翻译自:

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

如 Item#3指出"应尽可能使用const",为何不将argc和argv默认设为const?在何种情景下argc会被修改?

对此问题的回答是:

该问题有历史因素。C将这些参数定义为"非常量"以兼容现有的C代码。诸如getopt等的UNIX API会修改argv[],所以不能被设为const。有趣的是,getopt的原型表明它不会修改argv[]本身,而可能修改其指向的地址:.。

给argc和argv加上const不会获得什么益处,而且这会使得一些老旧的编程练习失效:

// print out all the arguments:while (--argc)    std::cout << *++argv << std::endl;

 

转载地址:http://wshpz.baihongyu.com/

你可能感兴趣的文章
mysql分库分表中间件简书_MySQL分库分表
查看>>
MySQL分库分表会带来哪些问题?分库分表问题
查看>>
MySQL分组函数
查看>>
MySQL分组查询
查看>>
Mysql分表后同结构不同名称表之间复制数据以及Update语句只更新日期加减不更改时间
查看>>
mySql分页Iimit优化
查看>>
mysql列转行函数是什么
查看>>
mysql创建函数报错_mysql在创建存储函数时报错
查看>>
mysql加强(4)~多表查询:笛卡尔积、消除笛卡尔积操作(等值、非等值连接),内连接(隐式连接、显示连接)、外连接、自连接
查看>>
mysql加强(5)~DML 增删改操作和 DQL 查询操作
查看>>
mysql加强(6)~子查询简单介绍、子查询分类
查看>>
MySqL双机热备份(二)--MysqL主-主复制实现
查看>>
mysql启动以后会自动关闭_驾照虽然是C1,一直是开自动挡的车,会不会以后就不会开手动了?...
查看>>
MySQL启动失败:Can't start server: Bind on TCP/IP port
查看>>
mysql启动报错The server quit without updating PID file几种解决办法
查看>>
mysql和oorcale日期区间查询【含左右区间问题】
查看>>
MySQL和SQL入门
查看>>
mysql在centos下用命令批量导入报错_Variable ‘character_set_client‘ can‘t be set to the value of ‘---linux工作笔记042
查看>>
Mysql在Linux运行时新增配置文件提示:World-wrirable config file ‘/etc/mysql/conf.d/my.cnf‘ is ignored 权限过高导致
查看>>
Mysql在Windows上离线安装与配置
查看>>