您的位置:首页 > 其它

输入型参数(const)与输出型参数

2015-11-11 22:31 330 查看
</pre><span style="font-size:18px">4.3.10.2、函数传参中使用const指针</span><span style="font-size:18px">(1)const一般用在函数参数列表中,用法是const int *p;(意义是指针变量p本身可变的,而p所指向的变量是不可变的)。</span><span style="font-size:18px">(2)const用来修饰指针做函数传参,作用就在于</span><span style="font-size:18px; color:rgb(255,0,0)">声明在函数内部不会改变这个指针所指向的内容</span><span style="font-size:18px">,所以给该函数传一个不可改变的指针(char *p = "linux";这种)不会触发错误;而一个未声明为const的指针的函数,你给他传一个不可更改的指针的时候就要小心了。</span><span style="font-size:18px">4.3.10.3、函数需要向外部返回多个值时怎么办?</span><span style="font-size:18px">(1)一般来说,函数的输入部分就是函数参数,输出部分就是返回值。问题是函数的参数可以有很多个,而返回值只能有1个。这就造成我们无法让一个函数返回多个值。</span><span style="font-size:18px">(2)现实编程中,一个函数需要返回多个值是非常普遍的,因此完全依赖于返回值是不靠谱的,通常的做法是用参数来做返回(在典型的linux风格函数中,返回值是不用来返回结果的,而是用来返回0或者负数用来表示程序执行结果是对还是错,是成功还是失败)。</span><span style="font-size:18px">(3)普遍做法,编程中函数的</span><span style="font-size:18px; color:rgb(255,0,0)">输入和输出都是靠函数参数的</span><span style="font-size:18px">,返回值只是用来表示函数执行的结果是对(成功)还是错(失败)。如果这个参数是用来做输入的,就叫输入型参数;如果这个参数的目的是用来做输出的,就叫输出型参数。</span><p><span style="font-size:18px">(4)输出型参数就是用来让函数内部把数据输出到函数外部的。</span></p><p><span style="font-size:18px">如下用法:</span></p><pre name="code" class="html"><span style="font-size:12px;">int main(void)
{
int a, b = 0, ret = -1;

a = 30;
ret = multip5_3(a, &b);
if (ret == -1)
{
printf("出错了\n");
}
else
{
printf("result = %d.\n", b);
}
}

int multip5_3(int a, int *p)
{
int tmp;

tmp = 5 * a;
if (tmp > 100)
{
return -1;
}
else
{
*p = tmp;
return 0;
}
}</span>


4.3.10.4、总结
(1)看到一个函数的原型后,怎么样一眼看出来哪个参数做输入哪个做输出?

函数传参如果传的是普通变量(不是指针)那肯定是输入型参数;如果传指针就有2种可能性了,为了区别,经常的做法是:如果这个参数是做输入的(通常做输入的在函数内部只需要读取这个参数而不会需要更改它)就在指针前面加const来修饰;如果函数形参是指针变量并且还没加const,那么就表示这个参数是用来做输出型参数的。

譬如C库函数中strcpy函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: