C 如何定位内存区域开头的地址?
我学过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) 您仍然可以直
a=1代码>
int*pointer\u 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。