本文主要是介绍指针数组和数组指针作为形式参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
类型
- 形式参数为指针数组
- 形式参数为数组指针
- 总结
形式参数为指针数组
void test(int* p[3], int n)
{printf("p为:%p\n", p);//p为:000000D93D71F718p++;printf("p为:%p\n", p);//p为:000000D93D71F720 加了8p++;printf("p为:%p\n", p);//p为:000000D93D71F728 加了8
}
#include<stdio.h>
int main(void)
{int arr[3][5] = { 1,2,3,4,5,6 };test(arr, 6);//arr为:000000D93D71F718printf("arr为:%p\n", arr);return 0;
}
数组进行加减运算时,加多少,减多少取决于数组的类型。数组的类型是指向整形的指针,指针的大小是8个字节,所以p加1相当于p加8.
形式参数为数组指针
void test(int (*p)[5], int n)
{printf("p为:%p\n", p);//p为:000000A908EFF648p++;printf("p为:%p\n", p);//p为:000000A908EFF65C 加了20p++;printf("p为:%p\n", p);//p为:000000A908EFF670 加了20
}
#include<stdio.h>
int main(void)
{int arr[3][5] = { 1,2,3,4,5,6 };test(arr, 6);printf("arr为:%p\n", arr);//arr为:000000A908EFF648return 0;
}
指针进行加减运算时,加多少,减多少取决于指针的类型。指针的类型是指向有五个整形的数组,一个整形的大小是4个字节,五个整形的数组占20个字节。
总结
指针或者数组在进行运算时,加多少减多少等于加的这个数乘一个倍数。这个倍数取决于指针或数组的类型。指针则取决于指针指向类型的大小,数组则取决于数组的类型,即数组的每个“数”都装了什么。
函数在传递参数时,形式参数在栈区新开辟一块容纳形式参数类型的空间,实际参数的值赋给ta。
这篇关于指针数组和数组指针作为形式参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!