c - 字符指针如何处理每个字节的MSB位?

标签 c pointers

对于以下代码:

void main()
{
   int i;
   float a=5.2;
   char *ptr;
   ptr=(char *)&a;
   for(i=0;i<=3;i++)
      printf("%d ",*ptr++);
}

我得到的o/p为102 102 -90 64..为什么?字符指针如何处理每个字节的MSB位?

最佳答案

char 是否有符号是由实现定义的。显然,您系统中的 char 数据类型是有符号的。所以MSB是符号位。

关于c - 字符指针如何处理每个字节的MSB位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647427/

相关文章:

c++ - 数组衰减到指针和重载解析

c - 在打开的文件句柄上调用 CloseHandle 是否也意味着 FlushFileBuffers?

c - 段错误追加空字符串 C

python - 基本的Python + C集成

c - 以下有关指针的 C 程序不起作用

c - 使用 char 指针 -> 段错误

c - 如何像下面这样用钻石打印结果?

c - CMake 是将包含的 header 中的所有内容编译到可执行文件中还是仅将主类中使用的部分编译?

c - 想了解更多警告 : comparison between pointer and integer in C programming

c - Malloc 使先前分配的指针无效?