本人0基础开始学编程,我能学会的,你也一定可以,学会多少写多少。
下载安装请从官网入手,社区版本即可,这里主要使用的软件是VS2019,图标如下。
上一篇:从0开始学c语言-15-一维数组与二维数组的创建、初始化以及在内存中的储存、数组越界和数组作为函数参数_阿秋的阿秋不是阿秋的博客-CSDN博客
目录
接续上一篇
数组作为函数参数
书写形式
数组作为函数传参的时候
可以写成两种形式
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的图可以说是一模一样,这就是两种写法的监视图展示。
总结
名称 | 地址 | 值 |