指针的一个灵活测试代码(获取第二、三字节的数据)涉及到指针的跨度和宽度概念

指针的一个灵活测试代码(获取第二、三字节的数据)涉及到指针的跨度和宽度概念

// 获取第二个和第三个字节的数据(涉及到指针的宽度和跨度) 
#include <bits/stdc++.h>
using namespace std;

int main () {
	int num = 0x01020304;
	int* p =&num; 
	char* c = (char*)&num; // int是4字节的,char 是1字节的,强转之后,只会取到最低那一个字节的
	short* b = (short *)(c + 1);//利用对应类型的跨度,来取到二 三字节的数据 
	cout << hex << *b << endl; 
	
	return 0;
}
 - num是int类型的
 - &num是int * 类型的
 - 对变量取地址&,相当于整个表达式类型上加上一个*(即他变成了int*类型的)
 - *p==num是int类型的;在使用中,对指针变量使用*(解除应引用),整个表达是类型上
   减少一个*,即*p是int类型的
 - 在使用中当*&同时出现时,从右往左,依次抵消。
 - &*&*& == &num | &*&*&*p == p
 - 指针变量的自身类型:去掉变量名,剩余的部分就是指针变量的自身类型。
 - 指针变量的指向类型:去掉变量名及离它最近的一个*,剩余的部分就是指针变量指向的类型;
 - 指针变量所取的内容的宽度是由指针变量所指向的类型长度决定的;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值