关于程序员:CPointerSymbolDifferents

38次阅读

共计 346 个字符,预计需要花费 1 分钟才能阅读完成。

  • & 是取地址运算符, &a 即 取 变量 a 的地址
  • ‘*’有两种含意

    • 用在变量定义时, 申明此变量为指针变量, 如 int *p
    • 用在非定义之时, 示意取指针所指向的地址中变量的值, int *p=&a, , *p 即 a 的值
    • *&p 与 p 是一样的,p 为指针

上面用代码示例


#include <stdio.h>

void main()
{
    int a=5;
    int *p=&a;//&a 是取 变量 a 的地址

    printf("*p  - %d\n", *p);// 在这里,*p 是取 p 存在这个地址上的值
    printf("p  - %x\n", p);
    printf("*&p  - %x\n", p);
    printf("&a  - %x\n", &a);
    printf("&p  - %x\n", &p);
}
/*
----
*p  - 5
p  - 22fe4c
*&p  - 22fe4c
&a  - 22fe4c
&p  - 22fe40
----
*/

正文完
 0