关于main函数的第二个参数
来源:互联网 发布:sql 2008 sa 密码 编辑:程序博客网 时间:2024/05/22 13:11
main函数的正规写法如下:int main(int argc,char *argv[], char *env[])
argv是执行程序时传递的参数,参数之间用空格隔开。是一维的char *数组。如果我们要传递的一个参数中间有空格,可以使用双引号把带空格的参数引起来,在main函数的栈里面双引号被自动去掉。在程序中我们经常使用argv+下标运算符来使用传递进来的某一个字符串,比如argv[1]参数,还可以用*(argv+1)含义:取argv这个char*的一维数组得第一个元素的值(这个值是char*类型,指向以空结尾的字符串)。
main函数也可以写成这样:int main(int argc,char **argv, char **env)
数组名是数组的首地址,就是数组的第一个元素的地址,那么char*类型的数组的第一个元素的地址应该是对char*取地址,即char**,值为&argv[0]或者argv+0。
那么main函数可不可以写成:int main(int argc,char argv[][], char env[][]),NO,不行。
原因一:main函数每个参数的长度不是定长,用一个定长的二维char数组来表示肯定不合理。
原因二:char argv[][] 这种写法本身就不对,压根就没有这种写法。有的写法是char pzStr[]="Hello",char S[][3]={"ab","cd","ef"}。系统不可能智能到自动判断每一维的大小。
分享一个小程序:
#include <stdio.h>int main(int argc, char **argv){char *pz1 = "anything";char *pz2 = "anything";printf("pz1=%x,pz2=%x", pz1, pz2);return 0;}输出结果:
pz1和pz2存的地址是一样的,这个地址位于代码段和数据段之间的只读常亮区,只读常量区除了存放字符串,还存放const修饰的全局变量。
- 关于main函数的第二个参数
- 关于main函数的参数
- 关于main函数的参数
- 关于main函数的参数
- main 函数的2个参数
- main函数的第三个参数envp
- 关于main函数:指针数组作为main函数的参数
- 关于Main函数参数的复习
- 关于Main函数的命令行参数
- 关于带参数的main函数
- 关于main函数的三个参数
- 关于main函数的三个参数
- 关于main函数的参数argc,argv
- 关于main()函数参数的问题
- main 函数第三个参数
- 关于 jquery 的第二个参数 undefined
- 关于 jquery 的第二个参数 undefined
- 关于sprintf_s第二个参数的用法
- 创世纪
- Linux关机重启停机(shutdown reboot halt)流程分析
- tensorflow:fully_connected_feed.py代码详细中文注释
- 模板方法模式【Template Method Pattern】
- 应届生/初级数据库开发笔面试汇总
- 关于main函数的第二个参数
- selenium+testng+gitblit+jenkins+ant自动化测试系列九:ant的build.xml文件详解及运用
- 基于JAVA对象流写的图书进销存系统管理
- java 求最大数
- Effective C++ 读书笔记五
- Linux命令基础14-su和sudo命令
- Python学习之面向对象编程
- intellij idea的使用
- 【Shell】-- 入门笔记(2):流程控制,重定向及文件包含