gpt4 book ai didi

c - 使用 C 变量进行内存寻址

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:51 25 4
gpt4 key购买 nike

如果运行,该程序将输出地址,它们之间相差 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;
}

最佳答案

一方面,您打印的是指针的地址,而不是指针。

void function(long *x) {
printf("Function x address: %p\n", &x);
}

试试这个(删除 &):

void function(long *x) {
printf("Function x address: %p\n", x);
}

关于c - 使用 C 变量进行内存寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24224046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com