一、函数的传值调用与传址调用
(a)传值调用形参变量在接收到实参表传过来的值时,会在内存临时开辟新的空间,以保存形参变量的值,当函数执行完毕时,这些临时开辟的内存空间会被释放掉,并且形参的值在函数中无论是否发生变化,都不会影响到实参变量的值的变化。
(b)传址调用
在“传址调用”求值中,传递给函数的是到它的实际参数的隐式引用而不是实际参数值自身。如果函数能够修改这样的形式参数,则任何改变对于调用者也是可见的。其实只是改变了地址所指向的块的内容,但地址没有改变。
代码示例:
#include <stdio.h>
void Exchg1(int x, int y) //传值调用
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("x=%d,y=%d\n",x,y);
}
void Exchg2(int *px, int *py)//地址传递
{
int tmp;
tmp=*px;
*px=*py;
*py=tmp;
printf("*px=%d,*py=%d\n",*px,*py);
}
void Exchg3(int &x, int &y)//引用传递,这是C++里面的用法。
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("x=%d,y=%d\n",x,y);
}
int main()
{
int a,b;
printf("传值调用\n");
a=4,b=6;
Exchg1(a,b)

本文总结了C语言中函数的传值与传址调用、变量作用域和存储类型、内部与外部函数的概念,以及宏定义的使用。同时探讨了数组的运用。内容侧重于易混淆和易忘的知识点,旨在帮助读者巩固C语言基础。欢迎指正交流。
最低0.47元/天 解锁文章
1086

被折叠的 条评论
为什么被折叠?



