指针:* p和C编程语言中的& p

时间:2014-12-26 09:32:47

标签: c pointers

请您告诉我C编程语言中* p和& p之间的区别?因为我真的有这个问题而且我不知道* p或& p是否正常!!!!

2 个答案:

答案 0 :(得分:2)

指针是一个变量,其值是另一个变量的地址,即存储单元的直接地址。与任何变量或常量一样,必须先声明指针,然后才能使用它来存储任何变量地址。指针变量声明的一般形式是:

type *var-name;

例如:

int    *ip;    /* pointer to an integer */
double *dp;    /* pointer to a double */
float  *fp;    /* pointer to a float */
char   *ch     /* pointer to a character */

看看这个节目:

#include <stdio.h>

int main ()
{
   int  var = 20;   /* actual variable declaration */
   int  *ip;        /* pointer variable declaration */

   ip = &var;  /* store address of var in pointer variable*/

   printf("Address of var variable: %x\n", &var  );

   /* address stored in pointer variable */
   printf("Address stored in ip variable: %x\n", ip );

   /* access the value using the pointer */
   printf("Value of *ip variable: %d\n", *ip );

   return 0;
}

https://www.tutorialspoint.com/cprogramming/c_pointers.htm

答案 1 :(得分:2)

只需

int a =10;
int *p = &a;

a是一个保存值为10的变量。存储此值的地址由&a给出。

现在我们有一个指针p,基本上指针指向一些内存位置,在这种情况下它指向内存位置&a

*p为您提供10

这称为取消引用指针。

p = &a /* Gives address of variable a */

现在让我们考虑一下

&p

指针也是一种数据类型,存储p的位置由&p

给出