1.在函数中:用指针传递数组:这里有两种传递方式,都是同样的意思,这里写了一个逆序数组的函数,来直观表达
第一种:直接传递数组名字,可以用指针代替数组名直接使用
void reverse_arr1(int* p, int n)
{
for (int i = 0, j = n - 1; i < j; i++, j--)//注意这里写的反序条件:i<j(两两交换但是不错位)
{
int temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
第二种:指针指向数组第一个,传递第一个地址,函数内部解应用
void reverse_arr2(int* p, int n)
{
for (int i = 0, j = n - 1; i < j; i++, j--)//这里的条件还是不变
{
int temp = *(p + i);//内部解引用
*(p + i) = *(p + j);
*(p + j) = temp;
}
}
2.应用指针循环遍历数组
void printf_arr_p(int* p, int n)
{
for (int i = 0; i < n; i++)
{
printf("%d", *(p + i)); //这里也可以写成printf("%d", *p++)可以达到相同的效果
}
/*for (int i = 0; i < n; i++)
{
printf("%d", *p++);
}*/
}
以上是对于数组和指针的简单应用.