整型变量与指针
#include <stdio.h>
void var_point(int *pvar1, int *pvar2)
{
printf("The value of *pvar1 and *pvar2: %d, %d \n", *pvar1, *pvar2);
printf("The mem addrs of pvar1 and pvar2: %p, %p \n", pvar1, pvar2);
int tmp;
tmp = *pvar1;
*pvar1 = *pvar2;
*pvar2 = tmp;
}
int main()
{
int var1 = 2345, var2 = 34;
printf("The value of var1 and var2: %d, %d \n", var1, var2);
printf("The mem addrs of var1 and var2: %p, %p \n", &var1, &var2);
var_point(&var1, &var2); //传入var_point中的参数为变量的实际存储地址,以下同理
printf("The value of var1 and var2: %d, %d \n", var1, var2);
printf("The mem addrs of var1 and var2: %p, %p \n", &var1, &var2);
}
The value of var1 and var2: 2345, 34
The mem addrs of var1 and var2: 0x7ffee0fc0a4c, 0x7ffee0fc0a48
The value of *pvar1 and *pvar2: 2345, 34
The mem addrs of pvar1 and pvar2: 0x7ffee0fc0a4c, 0x7ffee0fc0a48
The value of var1 and var2: 34, 2345
The mem addrs of var1 and var2: 0x7ffee0fc0a4c, 0x7ffee0fc0a48
整型数组与指针 - 1
#include <stdio.h>
void array_point(int *pvar3, int num)
{
printf("The mem addr of *pvar3: %p \n", pvar3);
printf("The first element of *pvar3 array: %d \n", *pvar3);
int i;
for (i = 0; i < num; i++)
{
printf("%d \t", pvar3[i]);
}
printf("\n");
}
int main()
{
int var3[3] = { 23, 5, 78 };
printf("The mem addr of var3 array: %p \n", var3);
printf("The first element of var3 array: %d \n", var3[0]);
array_point(var3, sizeof(var3)/sizeof(int));
}
The mem addr of var3 array: 0x7ffc5ca97224
The first element of var3 array: 23
The mem addr of *pvar3: 0x7ffc5ca97224
The first element of *pvar3 array: 23
23 5 78
整型数组与指针 - 2
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generate_array(int *array, int num, int range)
{
srand((unsigned)time(NULL));
for(int i = 0; i < num; i++)
{
array[i] = rand() % range;
}
}
void print_array(int *array, int num)
{
printf("The array is: ");
for (int i = 0; i < num; i++)
{
printf("%d \t", array[i]);
}
printf("\n");
}
int main()
{
int num = 15, range = 10000;
int new_array[num];
generate_array(new_array, num, range);
print_array(new_array, num);
}
The array is: 4129 2619 5951 536 6516 7673 5510 4776 1690 6517 5145 3675 70 6548 3651