如果运行,该程序将输出它们之间有20个字节差异的地址。由于long *和long *数据类型只分配8个字节的信息,为什么它们之间没有8个字节的差异?其他12个字节在哪里?
#include <stdio.h>
void functioner(long *y) {
printf("functioner y address: %p\n", &y);
}
void function(long *x) {
printf("Function x address: %p\n",&x);
functioner(x);
}
int main() {
long p =;
printf("Address of p: %p\n", &p);
function(&p);
return 0;
}
答案 0 :(得分:0)
一方面是打印指针的地址,而不是指针。
void function(long *x) {
printf("Function x address: %p\n", &x);
}
试试这个(删除&amp;):
void function(long *x) {
printf("Function x address: %p\n", x);
}