C语言-指针

本文探讨了C语言中指针的使用,包括如何与整型变量交互以及指针在处理整型数组时的角色。分为两个部分深入讲解整型数组与指针的关系:1. 整型数组与指针的基本结合;2. 进一步探讨数组与指针的相互作用。
摘要由CSDN通过智能技术生成

整型变量与指针

#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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值