C语言中形参与实参有何本质区别,构成程序交互的微妙纽带?
- 内容介绍
- 文章标签
- 相关推荐
本文共计746个文字,预计阅读时间需要3分钟。
C语言中,形参与实参的区别有:
1. 形参变量只在函数内部有效,当函数被调用时,形参才会分配内存空间,函数调用结束后,形参所占用的内存空间立即释放。因此,形参变量只存在于函数内部,不能在函数外部使用。
2. 实参可以是常量、变量、表达式、函数等,只要它在数据类型上和形参相匹配即可。实参用于向函数传递数据,实参在函数外部定义,在函数内部调用。
例如:
c#include
void swap(int *a, int *b) { int temp=*a; *a=*b; *b=temp;}
int main() { int x=10, y=20; swap(&x, &y); printf(x=%d, y=%d\n, x, y); return 0;}
在这个例子中,`swap` 函数使用了两个形参 `a` 和 `b`,它们都是指向整数的指针。在 `main` 函数中,`x` 和 `y` 是实参,它们是两个整数的地址。函数调用 `swap(&x, &y)` 传递了 `x` 和 `y` 的地址,从而实现了两个变量的交换。
c语言中形参和实参的区别有:
1、形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。
3、实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。当然,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型。
4、函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。
5、形参和实参虽然可以同名,但它们之间是相互独立的,互不影响,因为实参在函数外部有效,而形参在函数内部有效。
推荐教程:c语言教程
以上就是c语言中形参和实参有什么区别的详细内容,更多请关注自由互联其它相关文章!
本文共计746个文字,预计阅读时间需要3分钟。
C语言中,形参与实参的区别有:
1. 形参变量只在函数内部有效,当函数被调用时,形参才会分配内存空间,函数调用结束后,形参所占用的内存空间立即释放。因此,形参变量只存在于函数内部,不能在函数外部使用。
2. 实参可以是常量、变量、表达式、函数等,只要它在数据类型上和形参相匹配即可。实参用于向函数传递数据,实参在函数外部定义,在函数内部调用。
例如:
c#include
void swap(int *a, int *b) { int temp=*a; *a=*b; *b=temp;}
int main() { int x=10, y=20; swap(&x, &y); printf(x=%d, y=%d\n, x, y); return 0;}
在这个例子中,`swap` 函数使用了两个形参 `a` 和 `b`,它们都是指向整数的指针。在 `main` 函数中,`x` 和 `y` 是实参,它们是两个整数的地址。函数调用 `swap(&x, &y)` 传递了 `x` 和 `y` 的地址,从而实现了两个变量的交换。
c语言中形参和实参的区别有:
1、形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。
3、实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。当然,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型。
4、函数调用中发生的数据传递是单向的,只能把实参的值传递给形参,而不能把形参的值反向地传递给实参;换句话说,一旦完成数据的传递,实参和形参就再也没有瓜葛了,所以,在函数调用过程中,形参的值发生改变并不会影响实参。
5、形参和实参虽然可以同名,但它们之间是相互独立的,互不影响,因为实参在函数外部有效,而形参在函数内部有效。
推荐教程:c语言教程
以上就是c语言中形参和实参有什么区别的详细内容,更多请关注自由互联其它相关文章!

