输入型参数和输出型参数

1、函数为什么需要传参和返回值

(1) 函数的作用就是处理数据,传入的参数就是被加工的数据,返回值就是输出的结果。
(2)函数名就是这个函数的入口,在内存中表示就是一个函数代码段的首地址,实质是一个指针常量,所以在程序中使用函数名都是当地址来用的,用来调用这个函数。再理解指针函数的实质就比较简单了。
(3) 如果一个函数没有传参和返回值,也是可以的,也可以正常运行,那么没有返回值和形参的函数怎么运行呢?为什么会有这种函数呢?其实这种类型的函数在C语言中有很多。主要有两个作用:1) 在系统初始化的时候,我们做一些系统的配置工作,这种类型的函数都是一些配置函数,不需要形参。2)我们处理一些全局变量的数据时,会用到这种类型的函数。

2、输入型参数和输出型参数

我们举个例子来说明一下什么是输入型参数,什么是输出型参数。

int func(int a , int *p)
{
    *p = a +10;
    return 0;
}
int main()
{
    int x , y ;
    x = 10;
    func(x,&y);
    printf("x = %d \n", x);
    printf("y = %d \n", y);
    return 0;
}

运行结果: 
x = 10 
y = 20 

结论:
(1) func函数中a是输入型参数,p是输出型参数。
(2)形参的传值调用是输入型参数。传址调用即有可能是输出型参数,也有可能是输入型参数。作为输入型参数使用时,一般会加入const关键字,表明是只读,不能修改。

1、输入型参数是指这个参数的值已知,由外面传给函数里使用.
2、输出型参数是指这个参数的值未知,要通过函数传出来.

例如:拷贝函数

char *strcpy( char *strDestination, const char *strSource );

其函数功能是把字符串strSource 拷给strDestination。
这里strSource 是输入型形参,strDestination是输出型形参。

void main()
{
    char *strSrc = "abcd";
    char strDes[10];
    strcpy(strDes,strSrc);
    //strDes未知,要通过调用函数后才能得到,strSrc已知,传递给函数使用.
}

3、看到一个函数的原型后,怎样可以看出哪个参数做输入哪个做输出?

函数传参如果传的是普通变量(不是指针)那肯定是输入型参数;

如果传指针就有2种可能性了,为了区别,经常的做法是:

如果这个参数是做输入的(通常做输入的在函数内部只需要读取这个参数而不会需要更改它)就在指针前面加const来修饰;

如果函数形参是指针变量并且还没加const,那么就表示这个参数是用来做输出型参数的。

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值