如何在ATL做COM时能以数组为参数
发布网友
发布时间:2023-11-17 17:30
我来回答
共1个回答
热心网友
时间:2024-12-05 09:57
数组名作函数参数
数组名可以作函数的实参和形参。如:
main()
{int array[10];
……
……
f(array,10);
……
……
}
f(int arr[],int n);
{
……
……
}
array为实参数组名,arr为形参数组名。在学习指针变量之后就更容易理解这个问题了。数组名就是数组的首地址,实参向形参传送数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。这就好象同一件物品有两个彼此不同的名称一样。
同样,指针变量的值也是地址,数组指针变量的值即为数组的首地址,当然也可作为函数的参数使用。
归纳起来,如果有一个实参数组,想在函数中改变此数组的元素的值,实参与形参的对应关系有以下4种:
1) 形参和实参都是数组名。
main()
{int a[10];
……
f(a,10)
……
f(int x[],int n)
{
……
}
}
a和x指的是同一组数组。
2) 实用数组,形参用指针变量。
main()
{int a[10];
……
f(a,10)
……
f(int *x,int n)
{
……
}
}
3) 实参、型参都用指针变量。
4) 实参为指针变量,型参为数组名。