0
点赞
收藏
分享

微信扫一扫

C语言栈生成方向以及内存存放方向(小端对齐)


🌂首先这是一个很详细的图片,看下,简单记忆一下:

C语言栈生成方向以及内存存放方向(小端对齐)_存储方式


1、栈的生成方向

#include<stdio.h>

void fun1()
{
int z = 10; //栈底(高地址)
int x = 20;
int c = 30;
int d = 40; //栈顶(低地址)
printf("变量z地址:%#x\n",&z);
printf("变量x地址:%#x\n",&x);
printf("变量c地址:%#x\n",&c);
printf("变量d地址:%#x\n",&d);
}

int main()
{
fun1();
}

下面是运行截图:

C语言栈生成方向以及内存存放方向(小端对齐)_数据_02

2、内存的存储方式

#include<stdio.h>

void fun1()
{
int a = 0xaabbccdd;
unsigned char *p =&a; //保证打印一个字节

printf("%x\n",*p);
printf("%x\n",*(p+1)); //得到高地址
}

int main()
{
fun1();
}

C语言栈生成方向以及内存存放方向(小端对齐)_数据_03


得到低位数据放在低地址,高位数据放在高地址,通常称为“小端对齐”


举报

相关推荐

0 条评论