关于程序员:CPointerSymbolDifferents

  • & 是取地址运算符, &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
----
*/

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理