从0开始学c语言-15-数组作为函数参数的地址、值与类型变化深度解析

本文介绍了C语言中数组作为函数参数的两种形式:数组形式和指针形式,并通过监视和函数调用来探讨其在内存中的表现。在进入函数前后,分析了数组名、地址和类型的差异。此外,还对比了数组参数与普通变量参数的区别,强调了数组名代表首元素地址的特性。
摘要由CSDN通过智能技术生成

本人0基础开始学编程,我能学会的,你也一定可以,学会多少写多少。

下载安装请从官网入手,社区版本即可,这里主要使用的软件是VS2019,图标如下。

 上一篇:从0开始学c语言-15-一维数组与二维数组的创建、初始化以及在内存中的储存、数组越界和数组作为函数参数_阿秋的阿秋不是阿秋的博客-CSDN博客

目录

数组作为函数参数

书写形式

还未进入函数的监视

 进入函数1

 进入函数2

总结

形参实参的对比

进入函数之前

进入函数1

进入函数2

 总结

数组名是什么?

代码演示


接续上一篇

数组作为函数参数

书写形式

数组作为函数传参的时候
可以写成两种形式
1·数组形式
2·指针形式

//形参数组形式
void test1(int arr[]) //10可写可不写,因为传过来是首元素的地址
{
}
//形参指针形式
void test2(int* arr) //这两种写法都可以,本质上都是指针,只不过是两种书写方式
{
}
int main()
{
	int arr[10] = { 0 };
	test1(arr);
    test2(arr);
	return 0;
}

调试来看看

还未进入函数的监视

在未进入函数的时候展开看一下,arr是首元素的地址,包含所有值,类型为int[10]

 ​​​​​可以看到arr和&arr在未进入函数的时候,地址和包含的值都一样,只有类型不一样。

 arr+1代表下一个元素的地址和值,类型为int*

*arr和arr[0]都是首元素的值,都为int类型。

 进入函数1

arr进入函数后,是首元素的地址和值,类型变为int*

&arr的地址有所变化,但是包含arr的地址与值,类型为int**

arr+1的地址、值、类型都未改变。

arr[0]和*arr也未发生改变。

 进入函数2

 可以看到函数2和函数1的图可以说是一模一样,这就是两种写法的监视图展示。

总结

名称 地址
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值