gpt4 book ai didi

改变 char* 指向几位偏移量

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:50 26 4
gpt4 key购买 nike

假设我有这段代码:

char  num[2] = {15, 240};
char* p_num;

现在,如果我理解的一切正确,数组中的位应该像这样对齐:

00001111 11110000

我的问题是: 是否有任何可能的方法使指针 p_num 指向第一个字节中的最后四位,以便在我执行此代码时:

printf("%d", *p_num);

255会写吗?

即p_num 将指向下面括号中的位:

0000[1111 1111]0000

最佳答案

没有。内存的最小可寻址单位是一个字节(最好),尽管您可以使用

((num[0] & 0xF) << 4) | ((num[1] >> 4) & 0xF)

例如,

unsigned char num[2] = {15, 240};
unsigned char combined = ((num[0] & 0xF) << 4) | ((num[1] >> 4) & 0xF);
printf("%d\n", (int)combined);

请注意,我使用 unsigned char 来存储 240255,因为 char 可以有符号或无符号,具体取决于关于实现。

关于改变 char* 指向几位偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42169566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com