直接访问和间接访问

题目描述
本例要求实现对变量的直接访问和间接访问。输入任意两个整数,先用直接访问的方式输出这两个变量的值,再通过指针变量用间接访问的方式输出这两个变量的值。

输入要求
输入两个整数。

输出要求
先用直接访问方式输出这两个整数。

再通过指针变量用间接访问方式输出这两个整数。

输入样例
1 2

输出样例
a=1,b=2
a=1,b=2

#include<stdio.h>
int main()
{
   
int a,b,*pa=&a,*pb=&b; scanf("%d%d",&a,&b);   //定义普通变量和指针变量,并建立联系。两个整数从键盘输入
  printf("a=%d,b=%d\n",a,b);      //直接访问,输出变量a、b的值
  printf("a=%d,b=%d\n",*pa,*pb);  //间接访问,通过指针变量输出变量a、b的值
  return 0;
}
在C语言中,指针提供了直接访问间接访问内存地址的能力。这两种访问方式主要是根据指针的使用方式来区分的: **1. 直接访问(Direct Access):** 当你有一个指向某个变量的指针时,可以直接使用`*`运算符进行直接访问。这种操作称为解引用(dereferencing)。例如,假设有一个整型变量`int num = 5`,对应的指针为`int *ptr = &num`,你可以直接通过指针获取或修改该变量的值: ```c int value = *ptr; // 直接访问,value现在等于5 *ptr = 10; // 修改变量值,num现在等于10 ``` 在这个例子中,`*ptr`等价于`num`。 **2. 间接访问(Indirect Access):** 如果指针不是直接指向变量本身,而是指向了其他类型的结构体、数组元素或者其他指针,就需要先通过指针获取到实际的内存地址,然后才能访问。这通常用于处理复杂的数据结构。比如,如果你有一个指向整型数组首元素的指针`int (*array)[5]`,你想访问第三个元素,你需要先计算偏移量再进行访问: ```c int array[5] = {1, 2, 3, 4, 5}; int thirdElement = array[2]; // 直接访问 int indirectAccess = (*array)[2]; // 间接访问,indirectAccess也是3 ``` 在这里,`(*array)`首先解引用得到整个数组,然后`[2]`索引访问第三个元素。 总结来说,直接访问就是通过指针直接操作所指向的内存单元,而间接访问则是通过指针找到并访问更深层次的结构。这两种访问方式都是为了方便程序员操作内存,提高代码灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值