#include <stdio.h>
int main(void)
{
/**
%d是十进制
%o是八进制 约定俗成的规律在使用的时候加前缀 0
%x是读入十六进制整数 约定俗成的规律在使用的时候加前缀 0x
%p为输出地址专用,读入指针
&取地址符,在取地址符右边必须有明确的变量 &i++这种样子的就不行
*/
int i=0;
int p;
p=(int)&i;
printf("0x%x\n",&i); //0x62fe1c,虽然输出成功了,但是输出地址不应该用%f,应该用%p
printf("%p\n",&i); //000000000062FE1C 指针形式十六进制表示的地址
printf("0x%x\n",p); //0x62fe1c
printf("%lu\n",sizeof(int)); //4
printf("%lu\n",sizeof(&i)); //8 是64位架构 ,在32位架构里面他们是相同的
int j=0;
int k;
printf("%p\n",&j); //000000000062FE14
printf("%p\n",&i); //000000000062FE18 先写的变量地址更高,因为自上向下分配空间,是紧挨着的
printf("%p\n\n",&k); //000000000062FE10
//以下为取数组的地址
int z[10];
printf("%p\n",&z); //000000000062FDE0
printf("%p\n",z); //000000000062FDE0
printf("%p\n",&z[0]); //000000000062FDE0
printf("%p\n",&z[1]); //000000000062FDE4
printf("%p\n",&z[3]); //000000000062FDEC 十六进制数的基数是16,采用的数码是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
return 0;
}