C语言之函数返回值与参数传递案例教程

 更新时间:2021年07月22日 08:40:05   作者:LEE.ZHIMIN  
这篇文章主要介绍了C语言之函数返回值与参数传递案例教程,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

C语言函数返回值与参数传递

一:参数传递

C语言的函数中必不可少的就是参数传递,可以采用传值和传指针两种方式。
1.传值的形式:只是将参数值的拷贝传给函数,并非参数本体如:

int test(int x,int y)
{
    x=2*y;
    return x;
}
int main(void)
{ 
    int a=0,b=5;
    printf("%d,%d\n\r",test(a,b),a);
	return 0;
}

运行结果为:

10,0

即传值方式只可以将实参传递给函数,不可以改变实参本身。

2.传指针形式:直接传给函数的是变量的地址。
如:

int a(int b,int *c)
{
    int i=0;
    for(i=0;i<4;i++)
        c[i]=b*i;
    return 0;
    
}
int main(void)
{ 
    int b=2,c[4],i;
    a(b,c);
    for(i=0;i<4;i++)
	    printf("Data is -> %d\n\r",c[i]);
	return 0;
}

运行结果为:

Data is -> 0
Data is -> 2
Data is -> 4
Data is -> 6

由于被调函数在参数指针的作用域之内,此时可以直接改变变量的本体。

二:返回值

函数除了参数传递还有返回值,既可以返回变量值也可以返回地址。
1.返回变量
如:

int a(int b)
{
    int i=5;
    return 5*b;
}
int main(void)
{ 
    int b=2;
	printf("Data is -> %d\n\r",a(b));
	return 0;
}

运行结果

Data is -> 10

2.返回地址

int *test(int b)
{
    int i=0,buf[4];
    for(i=0;i<4;i++)
        buf[i]=b*i;
    return buf;
    
}
int main(void)
{ 
    int  b=2;
    int *p;
    int  i=0;
    p=test(b);
    for(i=0;i<4;i++)
    	printf("%d ,%d \n\r",p[i],test(b));
	return 0;
}

运行结果

0 ,1084896256
2 ,1084896256
4 ,1084896256
6 ,1084896256

另外不能返回局部变量地址。

int *buf()
{
	 int dad;
	 double buf[3][2];
	 dad=sizeof(buf);
  	 return &dad;//error:由于dad是局部变量,函数结束后释放。
}

到此这篇关于C语言之函数返回值与参数传递案例教程的文章就介绍到这了,更多相关C语言函数返回值与参数传递内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++实现推箱子功能附加回撤示例

    C++实现推箱子功能附加回撤示例

    本文主要介绍了C++实现推箱子功能附加回撤示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 如何使用C++结合OpenCV进行图像处理与分类

    如何使用C++结合OpenCV进行图像处理与分类

    在计算机视觉领域,OpenCV与C++结合能高效处理和分类图像,C++的高执行效率适合大规模数据处理,OpenCV提供丰富的功能,如图像预处理和机器学习算法,安装OpenCV需要配置环境和添加库文件,本文详细介绍了使用C++和OpenCV进行图像分类的过程,包括使用SVM和深度学习模型
    2024-09-09
  • C++用mysql自带的头文件连接数据库

    C++用mysql自带的头文件连接数据库

    现在正做一个接口,通过不同的连接字符串操作不同的数据库。要用到mysql数据库。通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法。可以通过2种方法实现。第一种方法是利用ADO连接,第二种方法是利用mysql自己的api函数进行连接。今天主要来讲解下使用API
    2016-07-07
  • C语言中getchar函数详解看这一篇就够了(函数功能、使用、返回值)

    C语言中getchar函数详解看这一篇就够了(函数功能、使用、返回值)

    getchar读取字符的函数,今天通过本文给大家介绍C语言中getchar函数简介用法示例详解,感兴趣的朋友跟随小编一起看看吧
    2023-02-02
  • 用C语言程序判断大小端模式

    用C语言程序判断大小端模式

    本文介绍了用C语言程序判断大小端的方法,与大家分享一下。
    2013-04-04
  • 详解C++之C++11的牛逼特性

    详解C++之C++11的牛逼特性

    这篇文章主要介绍了C++之C++11的牛逼特性,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-09-09
  • C++实现图书馆系统

    C++实现图书馆系统

    这篇文章主要为大家详细介绍了C++实现图书馆系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Qt基础开发之QString与QByteArray详细用法与区别及QString QByteArray互转

    Qt基础开发之QString与QByteArray详细用法与区别及QString QByteArray互转

    这篇文章主要介绍了Qt基础开发之QString与QByteArray详细用法与区别及QString QByteArray互转,需要的朋友可以参考下
    2020-03-03
  • C++11智能指针中的 unique_ptr实例详解

    C++11智能指针中的 unique_ptr实例详解

    unique是独特的、唯一的意思,故名思议,unique_ptr可以“独占”地拥有它所指向的对象,它提供一种严格意义上的所有权。这篇文章主要介绍了C++11智能指针中的 unique_ptr实例详解,需要的朋友可以参考下
    2020-06-06
  • Matlab实现贪吃蛇小游戏的示例代码

    Matlab实现贪吃蛇小游戏的示例代码

    这篇文章主要为大家详细介绍了如何利用Matlab实现贪吃蛇小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论