小编Den*_*nis的帖子

使用指针访问long long变量中的字节

我应该创建一个变量

long long hex = 0x1a1b2a2b3a3b4a4bULL;
Run Code Online (Sandbox Code Playgroud)

然后定义指向1a1b,2a2b,3a3b和4a4b的4个指针.然后我打印那些双字节的地址和值.

我的方法是创建一个指针

long long *ptr1 = &hex;
Run Code Online (Sandbox Code Playgroud)

然后使用指针算法来获取下一个值.我意识到增加这个指针会增加长字节,而不是像我需要的那样增加2个字节.创建一个短指针

short *ptr1 = &hex;
Run Code Online (Sandbox Code Playgroud)

是我需要的,但我的编译器不会让我,因为数据类型不兼容.我该如何解决这个问题?有没有办法创建一个递增2个字节的指针并将其分配给更大数据类型的变量?

c pointers strict-aliasing pointer-arithmetic

3
推荐指数
1
解决办法
180
查看次数

标签 统计

c ×1

pointer-arithmetic ×1

pointers ×1

strict-aliasing ×1