#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
void show_array1(int arr[],int len)
{
for(int i=0;i<len;i++)
{
printf("方式一 %d \n",arr[i]);
}
printf("\n");
}
void show_array2(int *arr,int len)
{
for(int i=0;i<len;i++)
{
printf("方式二 %d \n",*(arr+i));
}
printf("\n");
}
int *array3(int arr[], int len) {
printf("\n处理普通数组...\n");
for(int i=0; i<len; i++) {
arr[i] *= 2;
}
return arr;
}
int *array4(int *arr, int len) {
printf("\n处理普通数组...\n");
for(int i=0; i<len; i++) {
*(arr + i) *= 2;
}
return arr;
}
int* array_pointer(int (*arr_ptr)[5]) {
printf("\n处理数组指针...\n");
for(int i = 0; i < 5; i++) {
(*arr_ptr)[i] += 10;
}
return *arr_ptr;
}
int main()
{
int array[]={11,22,33,44,55};
int len=sizeof(array)/sizeof(array[0]);
show_array1(array,len);
int array2[]={111,252,353,454,555};
int len2=sizeof(array2)/sizeof(array2[0]);
show_array2(array2,len2);
int nums3[] = {1, 2, 3, 4, 5};
int len3 = sizeof(nums3)/sizeof(nums3[0]);
int *result3 = array3(nums3, len3);
printf("返回的数组内容:\n");
for(int i=0; i<len3; i++) {
printf("方式三 result3[%d] = %d\n", i, nums3[i]);
printf("方式三1 result3[%d] = %d\n", i, result3[i]);
}
int nums4[] = {1, 2, 3, 4, 5};
int len4 = sizeof(nums4)/sizeof(nums4[0]);
int *result4 = array4(nums4, len4);
printf("返回的数组内容:\n");
for (int i = 0; i < len4; i++)
{
printf("方式四 result4[%d] = %d\n", i, result4[i]);
}
printf("\n=== 数组指针示例 ===\n");
int nums[5] = {10, 20, 30, 40, 50};
int (*ptr)[5] = &nums;
int *result5 = array_pointer(ptr);
printf("返回的数组内容:\n");
for(int i = 0; i < 5; i++) {
printf("result[%d] = %d (地址: %p)\n", i, result5[i], &result5[i]);
}
}