【c语言】函数的数据传递原理 | 数组传入函数方法

这篇具有很好参考价值的文章主要介绍了【c语言】函数的数据传递原理 | 数组传入函数方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ   

函数基本概念知识:函数的基本概念、含义、结构

 

目录

传递就是复制!!!

数组传入函数:


传递就是复制!!!

#include <stdio.h>
int add(int a, int b);
int main()
{

	int a = 10,b = 20;
	printf("%d\n",add(a,b));
	return 0;
}
int add(int a,int b)
{
	int sum=0;
	sum=a+b;
	return sum;
}

修改add函数中的a并不会改变main函数中的a:  

【c语言】函数的数据传递原理 | 数组传入函数方法

当实参a传入add函数中,并不是a真正传入函数中,而是以复制的方式传给了add中的a

当传入地址时,复制的就是地址,传入基本类型数据时,复制的就是参数值 

函数的数据传递:复制方式

基本类型:复制 数值

指针类型:复制 地址

数组传入函数:

一个传入数组求和的函数如下 :

#include <stdio.h>
int add_all(int a[]);
int main()
{
	int arr[]={6,1,4,5,7};
	printf("%d\n",add_all(arr));
	return 0;
}

int add_all(int a[] )  //目的:传入数组 但是运行结果只有数组首位元素被传入
{
	int sum=0;
	int len=sizeof(a)/sizeof(a[0]);
	int i;
	for(i=0;i<len;i++)
	{
		sum+=a[i];    //结果为数组首位数据,不为期待的数组求和!
	}
	return sum;
}

【c语言】函数的数据传递原理 | 数组传入函数方法

结果为什么不是所期待的数组求和,而只输出了数组的首位数据?

原因是int add_all(int a[ ] ) 中传入函数的a[ ]并不是整个数组,而是数组第一位数据的地址!是指针类型:

【c语言】函数的数据传递原理 | 数组传入函数方法

【c语言】函数的数据传递原理 | 数组传入函数方法 传入的数组长度为1,只有数组首位元素6这一个数据。

【c语言】函数的数据传递原理 | 数组传入函数方法

 如果想将整个数组传入函数中,就需要给定数组的长度len:

【c语言】函数的数据传递原理 | 数组传入函数方法

【c语言】函数的数据传递原理 | 数组传入函数方法

 传入的a[ ] 仍然为数组第一位的地址,但是给定了len长度,数组第一位加上len长度的偏移,就可以遍历整个arr数组了。

具体实现如下: 文章来源地址https://www.toymoban.com/news/detail-422597.html

#include <stdio.h>
int add(int a, int b);
int add_all(int a[],int len);
int main()
{

	int arr[]={6,1,4,5,7};
	printf("%d\n",add_all(arr,sizeof(arr) / sizeof(arr[0]) ) );
	return 0;
}

int add_all(int a[],int len)
{
	int sum=0;
	int i;
	for(i=0;i<len;i++)
	{
		sum+=a[i];   // *(a+i)
	}
	return sum;
}

到了这里,关于【c语言】函数的数据传递原理 | 数组传入函数方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包