本文概述
正如我们已经知道“什么是指针”一样,指针是一个变量,用于存储另一个变量的地址。解引用运算符也称为间接运算符,由(*)表示。当将间接操作符(*)与指针变量一起使用时,则称为取消引用指针。当我们取消引用指针时,该指针所指向的变量的值将被返回。
为什么我们使用解引用指针?
由于以下原因,使用了取消引用指针:
- 它可以用来访问或操作存储在指针所指向的存储位置上的数据。
- 应用于取消引用的指针的任何操作都将直接影响它所指向的变量的值。
让我们观察以下步骤取消引用指针。
- 首先,我们声明指针指向的整数变量。
int x =9;
- 现在,我们声明整数指针变量。
int *ptr;
- 声明整数指针变量后,我们将’x’变量的地址存储到指针变量’ptr’。
ptr=&x;
- 我们可以通过以下解引用指针’ptr’来更改’x’变量的值:
*ptr =8;
上一行将’x’变量的值从9更改为8,因为’ptr’指向’x’位置,并且取消引用’ptr’,即* ptr = 8将更新x的值。
让我们结合以上所有步骤:
#include <stdio.h>
int main()
{
int x=9;
int *ptr;
ptr=&x;
*ptr=8;
printf("value of x is : %d", x);
return 0;}
输出量
让我们考虑另一个例子。
#include <stdio.h>
int main()
{
int x=4;
int y;
int *ptr;
ptr=&x;
y=*ptr;
*ptr=5;
printf("The value of x is : %d", x);
printf("\n The value of y is : %d", y);
return 0;
}
在上面的代码中:
- 我们声明两个变量“ x”和“ y”,其中“ x”保持为“ 4”值。
- 我们声明一个指针变量“ ptr”。
- 在声明了指针变量之后,我们将’x’变量的地址分配给指针’ptr’。
- 我们知道’ptr’包含’x’变量的地址,因此’* ptr’与’x’相同。
- 我们借助“ptr”变量将“x”的值分配给“y”,即y = * ptr而不是使用“x”变量。
注意:根据我们的说法,如果我们更改’x’的值,则’y’的值也会更改,因为指针’ptr’持有’x’变量的地址。但这不会发生,因为“ y”存储值“ 5”的本地副本。
输出量
让我们考虑另一种情况。
#include <stdio.h>
int main()
{
int a=90;
int *ptr1, *ptr2;
ptr1=&a;
ptr2=&a;
*ptr1=7;
*ptr2=6;
printf("The value of a is : %d", a);
return 0;
}
在上面的代码中:
- 首先,我们声明一个“ a”变量。
- 然后我们声明两个指针,即ptr1和ptr2。
- 两个指针都包含变量“ a”的地址。
- 我们将* 7的值分配给* ptr1,将’6’的值分配给* ptr2。 “ a”的最终值为“ 6”。
注意:如果我们有多个指针指向同一位置,则一个指针所做的更改将与另一指针相同。
输出量
评论前必须登录!
注册