C 如何定位内存区域开头的地址?

C 如何定位内存区域开头的地址?,c,C,我学过C语言,我有一些问题 如果找到内存区域起始地址的最佳方法是使用指针 例如,在几个步骤中 变量inta=1 我声明指向变量a的指针:int*pointer\u a 我将变量a分配给指针:pointer\u a=a 现在,我想在内存区打印地址: printf(“地址变量a=%p”和指针a) 我做得对吗?指针a应该包含变量a的内存地址,指针就是这样做的。就指针而言,&是操作员的地址 pointer_a = &a; 然后你就可以了printf(“地址变量a=%p”,指针a) 您仍然可以直

我学过C语言,我有一些问题

如果找到内存区域起始地址的最佳方法是使用指针

例如,在几个步骤中

  • 变量int
    a=1
  • 我声明指向变量a的指针:
    int*pointer\u a
  • 我将变量a分配给指针:
    pointer\u a=a
  • 现在,我想在内存区打印地址:
    printf(“地址变量a=%p”和指针a)

  • 我做得对吗?

    指针a
    应该包含变量a的内存地址,指针就是这样做的。就指针而言,
    &
    是操作员的
    地址

    pointer_a = &a;
    
    然后你就可以了
    printf(“地址变量a=%p”,指针a)


    您仍然可以直接
    printf(“地址变量a=%p”,&a)

    pointer\u a=a
    不应编译。您打印的是指针的地址,而不是变量
    a
    。没有可移植的“内存开始”定义,也没有可移植的方法来找出它的位置。一个指针可以告诉一千多个单词。现在我明白我的错误了。谢谢:)
    printf(“地址变量a=%p”,&pointer\u a)
    不打印
    a
    的地址。它打印指针的地址,而不是它所指向的地址。这可能会起作用,但打印指针所指向的地址(
    %p”,pointer\u a
    )要比打印指针所指向的地址内容的地址(
    %p,&*pointer\u a
    )简单@SiggiSv从问题中了解到他想打印a的地址。我用那句话回答。已经介绍了&operator。