C语言中指针的不同操作以及指针的问题是什么?


指针是一个变量,其值是另一个变量的地址,即内存位置的直接地址。像任何变量或常量一样,您必须在使用指针存储任何变量地址之前声明它。

考虑以下语句:

int qty = 179;

变量在内存中的表示如下:

您可以如下声明指针:

Int *p;

这意味着“p”是一个指针变量,它保存另一个整型变量的地址。

地址运算符 (&) 用于初始化指针变量。

例如:

int qty = 175;
int *p;
p= &qty;

要访问变量的值,使用间接运算符 (*)。

例如:

‘*’可以被视为地址处的值。

这两个语句等效于以下语句:

 p = &qty;
 n = *p; n =qty

不同的指针操作

C语言中的指针操作解释如下:

  • 赋值 - 我们可以使用 &(地址运算符)将地址赋给指针。

  • 查找值 - 这实际上是解引用,其中 * 运算符给出存储在指向位置的值。

  • 获取指针地址 - 与其他变量一样,指针变量也有地址和值,借助地址运算符,我们可以找到指针本身的存储位置。

  • 将整数加到指针 - 我们可以使用 + 运算符将整数加到指针或指针加到整数。在这里,在这两种情况下,整数都乘以指向类型的字节数,并将结果加到原始地址。

  • 递增指针 - 它是一个数组元素,可以移动到数组的下一个元素。

  • 从指针中减去整数 - 我们使用 –(减号)运算符从指针中减去整数。整数乘以指向类型的字节数,并将结果从原始地址中减去。

  • 递减指针 - 递减指针指向之前的而不是之前的地址,我们可以对递减运算符使用前缀和后缀形式。

  • 减法 - 我们可以找到两个指针的差值。通常,我们用来找出元素的距离。

  • 比较 - 我们将使用关系运算符来比较两个指针的值。

示例

以下是演示C语言中指针操作功能的程序:

#include<stdio.h>
main ( ){
   int x,y;
   //Declaring a pointer
   int *p;
   clrscr ( );
   x= 10;
   //Assigning value to a pointer
   p = &x;
   y= *p;
   printf ("Value of x = %d", x);
   printf ("x is stored at address %u", &x);
   printf ("Value of x using pointer = %d", *p);
   printf ("address of x using pointer = %u", p);
   printf (“value of x in y = %d", y);
   *p = 25;
   printf ("now x = %d", x)
   getch ( );
}

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

输出

执行上述程序时,您将得到以下输出:

Value of x = 10
x is stored at address = 5000
Address of x using pointer = 10
Address of x using pointer = 5000
Value of x in y = 10
Now x = 25

更新于:2021年3月15日

3K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告