变量地址获取及存储原理
1.获取变量地址的方法
%p 输出一个地址
先分配字节地址大内存,然后分配字节地址小的内存
例如:
- int a = 0,b = 1;
- printf("&a = %p\n",&a);
- printf("&b = %p",&b);
复制代码
打印结果:&a = 0x7fff5fbff94c
&b = 0x7fff5fbff948
结论:
1) a的地址比b的地址大,因为先定义的变量,计算机在分配内存的时候,从高地址向低地址分配,所以先定义的变量分配的高地址
2) a和b的地址不一定是连续的
2. 变量的存储细节
低位字节 存放在低地址
高位字节 存放在高地址
3. 变量的地址:
变量的首地址,是变量在内从中占据的最低的地址
4.变量在内存存储的细节
举例说明:
- int num = 10;
- char * p = #
- printf("address:%p :%d\n",p ,*(p));
- printf("address:%p :%d\n",p+1 ,*(p+1));
复制代码
打印结果
address:0x7fff5fbff93c :10
address:0x7fff5fbff93d :0
|
|