C语言深度总结[全面认识main函数传递参数]argc和argv是main函数的形式参数 。这两个形式参数的类型是系统规定的 。如果main函数要带参数 , 就是这两个类型的参数;否则main函数就没有参数 。
坚持使用标准的意义在于:当你把程序从一个编译器移到另一个编译器时,照样能正常运行 。
由于是 int main( ..) 那么当时 应当返回 int 但是return 2.3 ;也能运行正确,这是因为编译器自动转换2.3为int,截断后为return 2;
【c语言函数的数据传递参数 c语言 传递函数】如果写为 return "abc";那么会报错,error C2440: “return”: 无法从“const char [4]”转换为“int” 。
变量名称argc和argv是常规的名称,当然也可以换成其他名称 。那么 , 实际参数是如何传递给main函数的argc和argv的呢?我们知道,C程序在编译和链接后,都生成一个可执行文件 。也可以在命令行下带参数执行,命令行执行的形式为:可执行文件名称 参数1 参数2 ... ... 参数n 。可执行文件名称和参数、参数之间均使用空格隔开 。
如果按照这种方法执行,命令行字符串将作为实际参数传递给main函数 。具体为:
(1) 可执行文件名称和所有参数的个数之和传递给argc;
(2) 可执行文件名称(包括路径名称)作为一个字符串,首地址被赋给argv[0],参数1也作为一个字符串,首地址被赋给argv[1],... ...依次类推 。
字符串arav[i](i=1,...argc-1)表式第 i 个程序参数,标准C 要求argv[argc]是个null指针 , 但在有些旧时编译器中却不是这样的,argv向量以及它所指向的字符串必须是可以修改的,并且他们的值在程序执行期间不能被编译器或操作系统所修改 。如果编译器并不允许大小写混合的字符串 , 则存储在argv中的字符串必须采用小写形式 。
1.给main函数传递参数只有一种方式,即main(int argc, char *argv[]) 。第一个参数必须int,第二个(如果有的话)必须是char**或char *argv[] 。
2.argc代表传入参数的个数,argv是一个数组,每个元素都是一个char * 。字符串arav[i](i=1,...argc-1)表式第 i 个程序参数 , 标准C 要求argv[argc]是个null指针 。
3.main函数参数理论上支持“无数”个 , 且参数在进程内支持修改 。
C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是什么函数只有两种传递方式:
1、值传递,又称单向传递,只能把实参数值传给形参,形参最后的结果不影响实参(形参改变大小,实参大小不变) 。
2、址传递,通过指针,把实参的地址给形参,形参的大小可以影响实参 。
扩展资料:
实参变量和形参变量之间的调用过程
1、函数的形参列于函数声明中 , 在函数定义的函数体内使用,在未出现函数调用时,形参不占内存中的存储单元 。
2、将实参的值传递给形参,当函数被调用时,实参列在函数名后面的括号里,执行函数调用时,实参被传递给形参 。
3、在执行函数期间 , 由于形参已经有值,可以利用其进行相关运算 。
4、通过return语句将函数值带回到主调函数 。
5、调用结束,形参单元被释放 。实参单元仍保留并维持原值(值传递) 。
参考资料来源:百度百科-实际参数
在C语言中,函数实参与形参之间的数据传递方式是( )传递方式 。函数实参与形参之间的数据传递方式是( 值传递)传递方式,在C语言中,数据传递方式有值传递和引用传递,值传递c语言函数的数据传递参数:传值,实际是把实参的值赋值给行参,相当于copy 。
那么对行参的修改,不会影响实参的值。引用传递c语言函数的数据传递参数: 实际是传值的一种特殊方式,只是c语言函数的数据传递参数他传递的是地址,不是普通的赋值 , 那么传地址以后,实参和行参都指向同一个对象,因此对形参的修改会影响到实参 。
扩展资料
传值调用中,只使用c语言函数的数据传递参数了实参的值 。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值 。在引用调用机制里,将实参的地址传递给形参 , 从表面上看是以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上 。
引用传递是将变量的内存地址传递给方法 , 方法操作变量时会找到保存在该地址的变量,对其进行操作 。会对原变量造成影响 。可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值 。
参考资料:百度百科—引用传递
关于c语言函数的数据传递参数和c语言 传递函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 制作北大青鸟网站导航,制作北大青鸟宣传片
- jquery中get,jquery中get0等价
- 神舟erp系统怎么样,神舟erp系统怎么样好用吗
- 微星笔记本怎么换硬盘,微星笔记本怎么换硬盘教程
- 红袜子直播话术,袜子直播台词
- 诺基亚java后台代码 诺基亚java单机游戏
- 包含jqueryganttchart的词条
- 灯光加什么拍摄好看,灯光加什么拍摄好看又好看
- js给li加自定义元素属性,js给元素添加id