标签:har 16进制 打印 为什么 大小 cpu 指定 例子 绑定
#include <stdio.h>
int main(){
int i = 123456789;//i的值用16进制表示就是:0x075bcd15
char *c = (char*)&i;
printf("char:%d\n", *c);//打印出21,因为是char类型的指针,所以去1个字节,也就是去的是16进制的15,十进制就是21.
short *s = (short*)&i;
printf("short:%d\n", *s);//打印出-13035,因为是char类型的指针,所以去2个字节也就是去的是16进制的cd15,十进制就是-13035
int *pi = &i;
printf("int:%d\n", *pi);//打印出123456789
}
(gdb) p/a i
$4 = 0x75bcd15
(gdb) p 0x15
$6 = 21
(gdb) p/a -13035
$3 = 0xffffffffffffcd15
#include <stdio.h>
int main(){
int *p = (int*)0x7fffffffe1e4;
printf("int p=%p, p+1=%p\n", p,p+1);//int p=0x7fffffffe1e4, p+1=0x7fffffffe1e8
char *c = (char*)p;
printf("char p=%p, p+1=%p\n", c,c+1);//char p=0x7fffffffe1e4, p+1=0x7fffffffe1e5
short *s = (short*)p;
printf("short p=%p, p+1=%p\n", s,s+1);//short p=0x7fffffffe1e4, p+1=0x7fffffffe1e6
double *d = (double*)p;
printf("double p=%p, p+1=%p\n", d,d+1);//double p=0x7fffffffe1e4, p+1=0x7fffffffe1ec
}
标签:har 16进制 打印 为什么 大小 cpu 指定 例子 绑定
原文地址:https://www.cnblogs.com/xiaoshiwang/p/9162562.html