数组指针-ag九游会j9官方网站

ag九游会j9官方网站-j9九游会登录入口首页新版
1
5
数组指针
2023-06-10
114 浏览
一、数组指针
数组指针是指针?还是数组?
本质还是指针
1.数组指针的格式
plain text
复制代码
1. int (*p)[5];
2. //解释:p先和*结合,说明p是一个指针变量,然后指着指向的是一个为5格大小的整型数组.
3. //所以p是一个指针,指向一个数组.
4. //所以叫:组指针.
 注释可能看不清楚.
解释:p先和*(指针)结合,说明p是一个指针变量,然后指着指向的是一个为5格大小的整型数组.
所以p是一个指针,指向一个数组.
所以叫:组指针.
二、数组指针的使用
1.使用案例:
1.方法一
代码如下(示例):
plain text
复制代码
1. #include
2. int main()
3. {
4. int arr[10] = {1,2,3,4,5,6,7,8,9,0};
5. int (*p)[10] = &arr;
6. return 0;
7. }
注意:
把数组arr的地址赋值给数组指针变量p
但是我们一般很少这样写代码 
2.方法二
代码如下(示例):
对比一下代码 1 代码 2 自定义函数中(形参)的区别.
代码1:
plain text
复制代码
1. #include
2. void arr1(int arr[3][5], int a, int b)
3. {
4. int i = 0;
5. for (i = 0; i < a; i )
6. {
7. int j;
8. for (j = 0; j < b; j )
9. {
10. printf("%d ", arr[i][j]);
11. }
12. printf("\n");
13. }
14. }
15. int main()
16. {
17. int arr[3][5] = { 1,2,3,4,5,6,7,8,9,10 };
18. arr1(arr, 3, 5);
19. return 0;
20. }
代码2:
plain text
复制代码
1. #include
2. void arr2(int(*arr)[5], int a, int b)
3. {
4. int i = 0;
5. for (i = 0; i < a; i )
6. {
7. int j;
8. for (j = 0; j < b; j )
9. {
10. printf("%d ", arr[i][j]);
11. }
12. printf("\n");
13. }
14. }
15. int main()
16. {
17. int arr[3][5] = { 1,2,3,4,5,6,7,8,9,10 };
18. arr2(arr, 3, 5);
19. return 0;
20. }
2.运行结果
" width="16" class="ne-image-loading-icon">

代码 1 代码 2 的运行结果都是一样的
注意:
arr1(arr, 3, 5);
数组名arr,表示首元素的地址.
但是二维数组的首元素是二维数组的第一行.
所以这里传递的arr,其实相当于第一行的地址,是一维数组的地址.
可以数组指针来接收.
3.技巧(使用规范)
介绍:
我们在使用 数组 或者 指针 传给函数时的 参数 使用方法.
1.一维
代码如下(示例):
2.
代码如下(示例):
3.一级指针传参
 当一个函数的参数部分为一级指针的时候,函数能接收什么参数?
4.二级指针传参
 当函数的参数为二级指针的时候,可以接收什么参数?
avatarname
后发表内容
1个评论
666
您的社区活跃积分 3,登录后即可领取  
网站地图