C语言深度学习之int main(int argc,char **argv)的理解及延申

C语言深度学习之int main(int argc,char **argv)的理解及延申

前者为可接受 命令行参数,argc表示参数个数, argv[]是参数数组,其中第0个参数是程序本身的名称(包含路径)。
argv[]是一个字符数组.
argv[0]:指向程序的全路径名
argv[1]:指向在DOS命令行中执行程序名后的第一个字符串。
argv[2]:指向第二个字符串。

简单的说:main(int argc,char argv[])函数的两个形参,第一个int argc,是记录你输入在命令行上的字符串个数;第二个argv[]是个指针数组,存放输入在命令行上的命令(字符串)。

argc == 1 就是说参数的个数为1.
argv是字符串数组,存的是参数,定义为char**或者char* argv[]
【举例】
比如你编译好的程序为my.exe
(1)在命令行执行 my.exe
则:此时argc就是1,接受参数是1个,即参数argv[0]是”my.exe”
(2)在命令行执行 my.exe 1 2 3
则:此时argc就是4,接受参数是4个,即参数argv[0]是”my.exe”,argv[1]是”1”,argv[2]是”2”,argv[3]是”3”;

输入参数和输出参数

1.输入参数,是函数的调用者,传递给函数的实现者,对函数来说,是函数外部传入给函数内部使用的输出参数,是函数的实现者,传递给函数的调用者,对函数来说,是函数内部返回给函数外部的。需要说明的是,有些参数,即是输入参数又是输出参数;

2.输出参数可以有多个,返回值只能有一个。输出参数有时候又是输入参数,返回值没有这种情况
当函数只有一个输出时,即可以采用输出参数的方式,也可以用返回值的方式;

3.到底是不是输入参数和输出参数,要看函数的定义以及如何实现的了输出参数的初始化,没有强制要求,最好初始化一下 。
函数为什么需要形参和返回值

(1)函数名是一个符号表示整个函数代码段的首地址,

     实质是一个指针的常量,指针常量指向这个函数

     用到的函数名都是当地址用的,用来调用这个函数的。

(2)函数体是函数的关键,由一对{}括起来,包含很多句代码。

     函数体就是函数实际上做的工作。

(3)形参的列表和返回值

     形参是函数的输入部分,返回值是函数的输出部分,

     对函数最好的理解就是把函数理解成一个加工的机器。

     把数据进行加工,得到输出值。

     程序其实就是数据的加工器。

     那么我们形参的列表就是这个机器的原材料的输入端,而返回值就是机器的成品输出端。

(4)其实如果没有形参列表,函数也能对数据进行加工,用全局变量就可以了。
在嵌入式里面,除了你的产品占用的结构体,其它地方最好不要用到全局变量。

因为全局变量是非常的耗费内存的,所以我们要总是使用局部的变量。

形参和实参解释

  • C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。

    形参(形式参数)

  • 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。

    实参(实际参数)

  • 函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。

  • 形参和实参的功能是传递数据,发生函数调用时,实参的值会传递给形参。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值