C语言参数传递机制如何详细解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2843个文字,预计阅读时间需要12分钟。
C语言中的参数传递与函数调用讨论,涉及实参与形参的关系,即参数传递的问题。直接输出结果如下:
C语言中的参数传递方式包括值传递和地址传递。值传递是将实参的值复制给形参,调用函数时不会改变实参的值。地址传递是将实参的地址传递给形参,调用函数时可以通过指针改变实参的值。
C中的参数传递
本文尝试讨论下C中实参与形参的关系,即参数传递的问题。
C语言的参数传递
值传递
首先看下列代码:
#include <stdio.h> int main(){ int n = 1; printf("实参n的值:%d,地址:%#x\n", n, &n); void change(int i);//函数声明 change(n); printf("函数调用后实参n的值:%d,地址:%#x\n", n, &n); return 0; } void change(int i){ printf("形参i的值:%d,地址:%#x\n",i,&i); i++; printf("自增操作后形参i的值:%d,地址:%#x\n",i,&i); }
编译后执行结果如下:
实参n的值:1,地址:0x5fcb0c 形参i的值:1,地址:0x5fcae0 自增操作后形参i的值:2,地址:0x5fcae0 函数调用后实参n的值:1,地址:0x5fcb0c
可以看到,在调用函数 change 时,会在内存中单独开辟一个空间用于存放形式参数 i ,实参 n 的值会复制给形参 i 。对于形参的任何操作都不会影响到主调函数中的实参 n 。
本文共计2843个文字,预计阅读时间需要12分钟。
C语言中的参数传递与函数调用讨论,涉及实参与形参的关系,即参数传递的问题。直接输出结果如下:
C语言中的参数传递方式包括值传递和地址传递。值传递是将实参的值复制给形参,调用函数时不会改变实参的值。地址传递是将实参的地址传递给形参,调用函数时可以通过指针改变实参的值。
C中的参数传递
本文尝试讨论下C中实参与形参的关系,即参数传递的问题。
C语言的参数传递
值传递
首先看下列代码:
#include <stdio.h> int main(){ int n = 1; printf("实参n的值:%d,地址:%#x\n", n, &n); void change(int i);//函数声明 change(n); printf("函数调用后实参n的值:%d,地址:%#x\n", n, &n); return 0; } void change(int i){ printf("形参i的值:%d,地址:%#x\n",i,&i); i++; printf("自增操作后形参i的值:%d,地址:%#x\n",i,&i); }
编译后执行结果如下:
实参n的值:1,地址:0x5fcb0c 形参i的值:1,地址:0x5fcae0 自增操作后形参i的值:2,地址:0x5fcae0 函数调用后实参n的值:1,地址:0x5fcb0c
可以看到,在调用函数 change 时,会在内存中单独开辟一个空间用于存放形式参数 i ,实参 n 的值会复制给形参 i 。对于形参的任何操作都不会影响到主调函数中的实参 n 。

