大佬教程收集整理的这篇文章主要介绍了C语言 函数值传递和址传递 - C语言零基础入门教程,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
目录
@H_618_2@零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门
函数声明只是一个空壳,不会有具体的函数实现,而定义要实现函数的实现,例如:
int sub(int x,int y); //只需要声明即可,不需要实现这个函数的功能
int sub(int x,int y) 需要实现这个函数的功能
{
return (x-y);
}
函数在调用之前必须声明或者定义,否则会报错:找不到标识符,这也是为什么 hello world
中调用 printf
函数必须要包含 stdio.h
头文件的原因;
在 C
语言中,函数的参数传递方式有两种:值传递与地址传递。
值传递:使用变量、常量、数组元素作为函数参数,在调用结束后,形参值的任何变化都不会影响到实参的值。举个例子:
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言 函数值传递和址传递
//@Time:2021/06/20 08:00
//@motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
#include <stdio.h>
void func(int x, int y)
{
x = 100;
y = 200;
printf("func:x = %d, y = %d\n", x, y);
}
int main(void)
{
int a=10;
int b=20;
/*变量a、b为func函数的实际参数*/
func(a, b);
printf("main:a = %d, b = %d\n", a, b);
return 0;
}
/*
输出:
func:x = 100, y = 200
main:x = 10, y = 20
*/
@H_256_33@main 函数中调用 func
函数,以整数类型 a
,b
作为实参传递,虽然在 func
函数中形参 x
,y
值发生改变,但是并以不会影响 @H_256_33@main 函数中 a
,b
的值,这就是所谓的值传递;
在 C
语言中,函数的参数传递方式有两种:值传递与地址传递。
址传递:使用指针变量或者内存地址作为函数参数,在调用结束后,实参跟随形参一起变化。举个例子:
/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言 函数值传递和址传递
//@Time:2021/06/20 08:00
//@motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
#include <stdio.h>
void func(int *x, int *y)
{
*x = 100;
*y = 200;
printf("func:x = %d, y = %d\n", x, y);
}
int main(void)
{
int a=10;
int b=20;
/*分别对变量a、b取地址,并作为func函数的实际参数*/
func(&a, &b);
printf("main:a = %d, b = %d\n", a, b);
return 0;
}
/*
输出:
func:x = 100, y = 200
main:x = 100, y = 200
@H_256_33@main 函数中调用 func
函数,分别对变量 a
、b
取地址,并作为 func
函数的实参传递,由于形参 x
和实参 a
,形参x
和实参 a
指向同一个内存地址,在 func
函数中形参 x
,y
值发生改变,@H_256_33@main 函数中 a
,b
的值也会跟着一起改变,这就是所谓的址传递;
未经允许不得转载:猿说编程 » C语言 函数值传递和址传递
本文由博客 - 猿说编程 猿说编程 发布!
以上是大佬教程为你收集整理的C语言 函数值传递和址传递 - C语言零基础入门教程全部内容,希望文章能够帮你解决C语言 函数值传递和址传递 - C语言零基础入门教程所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。