当前位置: 首页 > 工具软件 > P2MSTextView > 使用案例 >

求p1+5和p2+5等于多少?

车子平
2023-12-01

例子:

unsigned char *p1; 
unsigned long *p2; 
p1=(unsigned char *)0x801000; 
p2=(unsigned long *)0x810000; 

求p1+5= ; p2+5= ; 

解答:

P1 = 5 * sizeof(unsigned char) + 0x801000 = 0x801005
p2 = 5 * sizeof(unsighed long) + 0x801000 = 0x801014

注意:在https://blog.csdn.net/weibo1230123/article/details/79660572这篇文章中给出了不同位数编译器下的基本数据类型所占的字节数:


16位编译器

char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int:  2个字节
unsigned int : 2个字节
float:  4个字节
double:   8个字节
long:   4个字节
long long:  8个字节
unsigned long:  4个字节

 

32位编译器
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int:  4个字节
unsigned int : 4个字节
float:  4个字节
double:   8个字节
long:   4个字节
long long:  8个字节
unsigned long:  4个字节

64位编译器

char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int:  4个字节
unsigned int : 4个字节
float:  4个字节
double:   8个字节
long:   8个字节
long long:  8个字节
unsigned long:  8个字节

 

 类似资料: