【问题标题】:pointer: *p and &p in C programming language [duplicate]指针:C 编程语言中的 *p 和 &p [重复]
【发布时间】:2014-12-26 09:32:46
【问题描述】:

你能告诉我C编程语言中*p和&p的区别吗?因为我真的有这个问题,我不知道 *p 或 &p 是否可以!!!!

【问题讨论】:

  • 这两个运算符是相反的。请给我们一些让您感到困惑的背景。
  • *p取消引用指针p&p给出指针p的地址
  • 也许阅读 C 的前几章会是个好主意
  • 深呼吸,从here开始阅读运营商的相关信息。

标签: c pointers


【解决方案1】:

随便拿

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

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

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

*p 给你10

这称为解引用指针。

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

现在让我们考虑

&p

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

【讨论】:

    【解决方案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

    【讨论】:

      猜你喜欢
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      相关资源
      最近更新 更多