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