1、使用指针访问数组元素:
#include <stdio.h>
void Print_arr(int* p, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", *p);
p++;
}
}
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
Print_arr(arr, sz);
return 0;
}//1 2 3 4 5 6 7 8 9 10
代码优化:
#include <stdio.h>
void Print_arr(int* p, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
/*printf("%d ", *p);
p++*/;
printf("%d ", *p++);//*的优先级高于++的
}
}
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
Print_arr(arr, sz);
return 0;
}//1 2 3 4 5 6 7 8 9 10
或:
#include <stdio.h>
void Print_arr(int* p, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
/*printf("%d ", *p);
p++*/;
//printf("%d ", *p++);//*的优先级高于++的
printf("%d ", *(p + i));
}
}
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
Print_arr(arr, sz);
return 0;
}//1 2 3 4 5 6 7 8 9 10
2、若使用数组下标:
#include <stdio.h>
void Printf_arr(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)//注意:是<sz
{
printf("%d ", arr[i]);
}
}
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
Printf_arr(arr,sz);
return 0;
}//1 2 3 4 5 6 7 8 9 10