如果使用 return 语句的话,那么一次函数调用就只能返回一个值;如果想一次函数调用操作就能够返回两个值的话,那么就只能够通过传递指针变量实现。例如下程序:
创新互联公司专注于网站建设,为客户提供成都网站设计、网站制作、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,成都品牌网站建设,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。
void mysubcall(int *, char *) ;
void main( )
{
int num = 10 ;
char mystr[20]=“1234567890”;
mysubcall(num,mystr);
printf(“%d %s\n”,num,mystr);
}
void mysubcall(int * num, char mystr[20])
{
(*num)+=40;
mystr[5]+=5;
}
该子函数返回的就是两个值:改变后的数字、以及改变后的字符串。
你第一个调用的是数组第3个元素的值,第2次调用的是储存第3个元素的地址,如果你想达到同样的效果,用指针符号‘*’来输出
一个函数只能有一个返回值,指针可以返回多个,例如:
void aaa()
{
int *a,*c;
int a,c;
*a=a;*c=c;
a=b();c=b();
}
下面调用 *a和*c.
扩展资料:
在C语言中,指针的使用非常广泛,因为使用指针往往可以生成更高效、更紧凑的代码。总的来说,使用指针有如下好处:
1、指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效;
2、C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等;
3、C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象,但是这种操作可以由指针来完成,而且并不违背传值调用。
参考资料来源:百度百科-指针 (编程语言中的一个对象)