理科生的浪漫 发表于 2022-12-9 16:35:43

C语言的内存布局|课后作业6指针扩展问题

C语言的内存布局的课后作业6是:

#include <stdio.h>

int main(void)
{
      char a = 0, b = 0;
      int *p = (int *)&b;

      *p = 258;

      printf("%d %d\n", a, b);

      return 0;
}

答案是:见附件图片


a,b变量是保存在 栈区的,栈区变量地址是往下扩展的,请问指针P扩展之后的地址,在栈区是向下扩展还是向上扩展 ?也就是说指针P扩展的地址是高地址还是低地址 ?

jhq999 发表于 2022-12-9 18:54:14


p=(int*)&a
char *c=(char*)p;//
&c<&c<&c<&c
所以我认为应该是向高地址扩展

页: [1]
查看完整版本: C语言的内存布局|课后作业6指针扩展问题