pointer operations
#include <stdio.h>
#define size 4
int main()
{
int arr[size] = {123, 223, 333, 444};
int *ptr1 = arr;
int **ptr2 = &ptr1;
printf("(HEX)*ptr1 = %p\n", *ptr1);
printf("(DEC)*ptr1 = %d\n", *ptr1);
printf("ptr1 = %p\n", ptr1);
printf("&ptr1 = %p\n", &ptr1);
printf("ptr2 = %p\n", ptr2);
printf("*ptr2 = %p\n", *ptr2);
printf("**ptr2 = %p\n", **ptr2);
printf("(HEX)arr = %p\n", arr);
printf("(DEC)arr = %d\n", arr);
return 0;
}
#include <stdio.h>
#define size 4
int main()
{
int arr[size] = {123, 223, 333, 444};
int *ptr1 = arr;
int *ptr2 = &arr[1];
printf("sizeof(ptr1) = %d\n", sizeof(ptr1));
printf("&ptr1 = %d\n", &ptr1);
printf("&ptr2 = %d\n", &ptr2);
printf("&ptr1 = %p\n", &ptr1);
printf("&ptr2 = %p\n", &ptr2);
return 0;
}
用指针创建处理数组的函数
#include <stdio.h>
#define size 4
void print_arr(int *);
void add_1_to_array(int *);
int main()
{
int arr[size] = {1, 2, 3, 4};
print_arr(arr);
printf("\n");
add_1_to_array(arr);
print_arr(arr);
return 0;
}
void print_arr(int *array)
{
for (int index = 0; index < size; index++)
{
printf("%d ", array[index]);
}
}
void add_1_to_array(int *array)
{
for (int index = 0; index < size; index++)
{
(*(array + index))++;
}
}