第八章:指针04
让编程改变世界
Change the world by program
小结
归纳起来, 如果有一个实参数组, 想在函数中改变此数组中的元素的值, 实参与形参的对应关系有以下4种情况: (1) 形参和实参都用数组名, 如: [codesyntax lang="c"]void main()
{
int a[10];
f(a, 10);
}
void f(int x[], int n)
{
}
[/codesyntax]
(2) 实参用数组名, 形参用指针变量。如:
[codesyntax lang="c"]
void main()
{
int a[10];
f (a, 10);
}
f(int *a, int n)
{
}
[/codesyntax]
(3) 实参形参都用指针变量。如:
[codesyntax lang="c"]
void main()
{
int a[10], *p = a;
f(a, 10);
}
void f(int *x, int n)
{
}
[/codesyntax]
(4) 实参为指针变量, 形参为数组名。如:
[codesyntax lang="c"]
void main()
{
int a[10], *p = a;
f(p, 10);
}
f(int x[], int n)
{
}
[/codesyntax]
源码分析
对数组中10个整数按由大到小顺序排序
程序源代码(点击下载)多维数组与指针
用指针变量可以指向一维数组中的元素, 也可以指向多维数组中的元素。 但在概念上和使用上, 多维数组的指针比一维数组的指针要复杂一些。多维数组元素的地址
先回顾一下多维数组的性质,可以认为二维数组是“数组的数组”, 例 : 定义int a[3][4] = {{1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19, 21, 23}}; 则二维数组a是由3个一维数组所组成的。设二维数组的首行的首地址为2000 则有…… [caption id="attachment_154" align="aligncenter" width="300"]
多维数组元素的地址[/caption]
[caption id="attachment_155" align="aligncenter" width="300"]
多维数组元素的地址[/caption]