C 语言编程 — 指令行参数
目录
前文列表
《程序编译流程与 GCC 编译器》
《C 语言编程 — 基本语法》
《C 语言编程 — 基本数据类型》
《C 语言编程 — 变量与常量》
《C 语言编程 — 运算符》
《C 语言编程 — 逻辑控制语句》
《C 语言编程 — 函数》
《C 语言编程 — 高级数据类型 — 指针》
《C 语言编程 — 高级数据类型 — 数组》
《C 语言编程 — 高级数据类型 — 字符串》
《C 语言编程 — 高级数据类型 — 枚举》
《C 语言编程 — 高级数据类型 — 结构体与位域》
《C 语言编程 — 高级数据类型 — 共用体》
《C 语言编程 — 高级数据类型 — void 类型》
《C 语言编程 — 数据类型的别名》
《C 语言编程 — 数据类型转换》
《C 语言编程 — 宏定义与预处理器指令》
《C 语言编程 — 异常处理》
《C 语言编程 — 头文件》
《C 语言编程 — 输入/输出与文件操作》
《C 语言编程 — 堆栈与内存管理》
命令行参数
C 语言支持在执行程序时,从命令行传入参数值给程序,这些值被称为命令行参数。当希望从外部控制程序,而不是在代码内对这些值进行硬编码时,非常常见的一种手段。命令行参数是使用 main() 函数参数来处理的:
int argc:标识传入的参数的个数。char *argv[]:是一个字符串指针数组,指向传递给程序的每个参数。
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Program name %s\n", argv[0]);
if (argc == 2) {
printf("The argument supplied is %s\n", argv[1]);
}
else if (argc > 2) {
printf("Too many arguments supplied.\n");
}
else {
printf("One argument expected.\n");
}
}
运行:
$ ./main fanguiju
Program name ./main
The argument supplied is fanguiju
其中,argv[0] 存储的是程序的名称,argv[1] 才是指向第一个命令行参数的指针,*argv[n] 则是最后一个参数。如果没有提供任何参数,argc 将为 1,否则,如果传递了一个参数,argc 将被设置为 2。
多个命令行参数之间用空格分隔,但是如果参数本身带有空格,那么传递参数的时候应把参数放置在双引号 “” 或单引号 ‘’ 内部。
需要注意的是,也可以使用 char **argv 代替 char *argv[] 形参,以下几个概念竟然让人混淆:
int aArray[5] = {1, 2, 3, 4, 5}; // 数组变量。
char greeting[] = "Hello"; // 字符串变量,本质是一个以 null 字符结尾的字符数组。
char *ch; // 字符指针变量,指向字符的指针。
char *stuname_temp[STUDENT_NUM]; // 指针数组变量,每个元素都指向字符(或字符串)的指针的数组。
char **ch; // 指针指针变量,指向字符指针的指针。
当 STUDENT_NUM 为 1 或不填写时,char *stuname_temp[STUDENT_NUM] 和 char **ch 的变量名本质是一致的。我们在数组章节提到过,数组变量名就是指向数组第一个元素的指针,如果这个元素的值是一个指针,那么数组变量名的本质就是一个指针指针。
#include <stdio.h>
int main() {
char **a;
char *b[] = {0};
printf("a: %lu\n", sizeof(a));
printf("b: %lu\n", sizeof(b));
return 0;
}
运行:
$ ./main
a: 8
b: 8
C 语言编程 — 指令行参数的更多相关文章
- [日常] Go语言圣经-命令行参数
1.编译 go build hello.go 2.go get gopl.io/ch1/helloworld 命令,就会从网上获取代码,并放到对应目录中 下载的代码会放在$GOPATH/src/gop ...
- R语言 使用命令行参数运行R程序
args_test.R 代码如下: Args <- commandArgs()cat("Args[1]=",Args[1],"\n")cat(" ...
- [Objective-C语言教程]命令行参数(23)
执行时,可以将一些值从命令行传递给Objective-C程序. 这些值称为命令行参数,很多时候它们对程序很重要,特别是当想要从外部控制程序而不是在代码中对这些值进行硬编码时就很有用了. 命令行参数使用 ...
- C语言讲解命令行参数
命令行(command line):是在命令行环境中,用户为运行程序输入命令的行. 命令行参数(command-line argument): 是同一行的附加项. C编译器允许main()没有参数或者 ...
- c语言中命令行参数argc,argv[]详解
main(int argc,char *argv[ ]) 1.argc为整数 2.argv为指针的指针(可理解为:char **argv or: char *argv[] or: char argv[ ...
- C语言/Linux命令行参数argc、argv[ ]详解
1.void main(int argc,char *argv[]) argv[]:表示的是一个指针数组,一共有argc个元素,其中存放的是指向每一个参数的指针. argc:参数个数 2.以Linux ...
- Python 获得命令行参数的方法
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?需要模块:sys参数个数:len(sys.argv)脚本名: sys.argv[0]参数1 ...
- python中命令行参数
python中的命令行参数 python中有一个模块sys,sys.argv这个属性提供了对命令行参数的访问.命令行参数是调用某个程序时除程序名外的其他参数. sys.argv是命令行参数的列表 le ...
- C语言笔记 12_可变参数&内存管理&命令行参数
可变参数 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数.C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数.下面的实例 ...
- 我也要学C语言-第十九章:命令行参数
C语言的语法规定main函数是带连个参数的,因为当初是考虑是在控制台下写程序.于是用户可以给参数微控程序.其实现在的WINDOWS程序也可以带参数.一般正规军写的应该程序一般都带命令行参数,帮助文档, ...
随机推荐
- OpenHarmony开发者论坛正式上线,盖楼赢惊喜好礼~
你,是否曾遇到OpenHarmony开发难题,却不知找谁解答? 你,是否曾想分享OpenHarmony技术,但没有一个官方投稿平台? 你,是否想加入火热的OpenHarmony开源项目,却不知如何 ...
- 最新CAMX-python融合技术应用与大气污染来源解析方法
大气污染问题既是局部.当地的,也是区域的,甚至是全球的.本地的污染物排放除了对当地造成严重影响外,同时还会在动力输送作用下,极大地影响下风向地区的大气环境状况.数值模式模拟是分析大气污染物时空分布和成 ...
- openGauss每日一练第三天
openGauss 每日一练第三天 本文出处:https://www.modb.pro/db/193083 学习目标 学习 openGauss 创建数据库.修改数据库属性和删除数据库 课后作业 1.分 ...
- MogDB-opengauss中的聚集与分组操作
MogDB/opengauss 中的聚集与分组操作 COUNT:对结果集中的元组数量进行计数,如果是 COUNT(*),那么会统计所有元组(包括 NULL 值)的数量,如果是 COUNT(colnam ...
- HDD杭州站·HarmonyOS技术专家分享HUAWEI DevEco Studio特色功能
原文:https://mp.weixin.qq.com/s/87diJ1RePffgaFyd1VLijQ,点击链接查看更多技术内容. 7月15日,HUAWEI Developer Day(简称HDD) ...
- Android 开发入门(5)
0x07 数据存储 (1)共享参数 SharedPreferences a. 用法 用法 SharedPreferences 是 Android 的一个轻量级存储工具,采用的存储结构为键值对的方式 共 ...
- 开源相机管理库Aravis例程学习(二)——连续采集multiple-acquisition-main-thread
目录 简介 例程代码 函数说明 arv_camera_set_acquisition_mode arv_camera_create_stream arv_camera_get_payload arv_ ...
- 第五章-for循环的练习
/* * @Issue: 每个苹果0.8元,第一天买两个苹果,从第二天开始,每天买前一天的两倍,直至购买的苹果数量 * 个数达到不超过100的最大值,编写程序求每天平均花多少钱. * @Author: ...
- 高云GOWIN下载出现No devices found咋办
在使用GOWIN下载器下载会出现该类问题 No devices found错误. 原因如下: A . Windows10 系统会出现下载器通道顺序错误,所以要确保在 A 通道上. B.有一些 USB ...
- 第九課-Channel Study For Caller Client Api
1.浏览Mirth Connect开放Client API 2.启动Vs2019,编程测试Client Api的调用 开启你在宇宙第一IDE下熟悉的.net之旅吧!