请教关于C语言的命令行参数 echo程序是什么?

请教关于C语言的命令行参数 echo程序是什么?,第1张

这个就是C语言的命令行参数和main函数之间的参数转换关系的详细解释了。

1、首先明确一下我们编译出来的可执行程序

windows编译出来的可执行程序扩展名为exe,比如test.ext,楼主例子中的echo.exe,运行程序的时候exe可以省略。

我们要执行一个程序,第一个肯定是要写上程序的名字,比如echo.exe或者echo,然后后面跟参数,比如楼主程序里面的hellow, world,就是2个参数,以空格分开,第一个参数是hellow,,第二个参数是world

2、然后再看一下程序是如果将我们写的参数传递给可执行程序的。

main函数的参数是两个int argc,char *argv[],argc就是参数的个数,argv数组就是具体的参数了。

程序执行时,会根据我们输入的个数来决定给main函数传递什么东西。按照空格分开,每一个输入就是一个参数(注意:也要包含程序本身的名字,也是一个参数)

即当我们输入echo hellow, world的时候,main函数接收到3个参数,echo,hellow,和world,这个时候argc就等于3,argv[0]是echo,argv[1]是hellow,,argv[2]world。

3、估计楼主疑惑的就是可执行程序的名字为什么也是一个参数,这个是C语言的规范,记住就行了哈。

@echo off

color 1a&rem ProductVersion

setlocal ENABLEDELAYEDEXPANSION

title ip修改器

rem eth

set eth="本地连接"

rem ip

set /p pass=请输入网段:

rem %gateway%==none netsh interface ip set address %eth% static %ip% %netmasks% %

gateway% > nul

set /p pas=请输入主机位:

remif %dns%==none netsh interface ip set

set ip="192.168.%pass%.%pas%"

rem gateway

set gateway=192.168.%pass%.254

rem netmasks

set netmasks=255.255.255.0

rem dns

set dns=218.89.0.124

rem dns2

set dns2=61.139.50.67

echo 正在将本机IP更改到: %ip% 请等候...

rem

if %gateway%==none netsh interface ip set address %eth% static %ip% %netmasks% %

gateway% > nul

if not %gateway%==none netsh interface ip set address %eth% static %ip% %netmasks% %

gateway% 1 > nul

if %dns%==none netsh interface ip set dns %eth% static %dns%> nul

if not %dns%==none netsh interface ip set dns %eth% static %dns%> nul

if %dns2%==none netsh interface ip add dns %eth% %dns2%> nul

if not %dns2%==none netsh interface ip add dns %eth% %dns2% 2> nul

echo.........................

echo 检查当前本机IP:

ipconfig /all

echo.........................

echo 成功将本机IP更改为%ip%!

pause

exit


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12168883.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存