内存这么认识

1、 short a = 48;//[30][00]
    a = 0x23456;//[56][34]
2、如果数组的首地址为001CFF10
  int drr[5] = {1,2,3,4,5};
  std::cout<<(&drr[3]);//非char地址 001CFF1C
  std::cout<<*(&drr[5]-3);//变量 3
  std::cout<<(&drr[3])[1];//变量 5
3、
  std::cout<<"123abcde"[3];//变量 a
//[31] <---- "123abcde"
//[32]
//[33]
//[61]<---"123abcde"+3
//[62]
//[63]
//[64]
//[65]
//[00]
  std::cout<<"123abcde"+3;//char地址 abcde
  std::cout<<("123abcde"+3)[1];//变量 b
  std::cout<<*(&("123abcde"[5])-3);//变量 3 
4、
  char s[10] = "123abc";
//[31] <-- s
//[32]
//[33]<-- s+2
//[61]<-- s+3
//[62]
//[63]
//[00]
//[00]
//[00]
//[00]
  std::cout<< s + 3;//char地址 abc
  std::cout<< *(s + 2);//变量 3
  std::cout<< (s + 2)[2];//变量 b

5、char s1[10] = "123abc";
std::cout<<sizeof(s1);//10
std::cout<<strlen(s1);//6
char s[] = "123abc";
//31  <--(short*)s
//32 
//33 
//61 
//62 
//63 
//00
std::cout<<sizeof(s);//7
std::cout<<strlen(s);//6
std::cout<< s+2;//char地址 3abc
std::cout<< *(s+2);//变量 3
std::cout<< ((short*)s)[1];//变量 24883  0x6133的十进制
int e = *(int*)(&(s+3)[-2]);
//e在内存中的存储 32 33 61 62
//32 
//33 
//61 
//62
6、
int a1 = 0x31323334;
//34 <-- 
//33
//32
//31
std::cout<<(char*)&a1;//char地址 4321乱
a1 = 0x313233;
//33<--
//32
//31
//00
std::cout<<(char*)&a1;//char地址 321
std::cout<<*((int*)"123");//变量3355185  0x333231的十进制
//31 <-- 
//32
//33
//00
std::cout<<*((int*)"1234");//变量   0x34333231的十进制
//31 <-- 
//32
//33
//34
//00
875770417

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值