c - 有符号字符指针和无符号字符指针之间的工作区别是什么?

标签 c pointers char sizeof unsigned

我可以理解 signed charunsigned 之间的区别。但是对应类型的指针在操作上不是等价的吗?因为 sizeof(char)sizeof(unsigned char) 总是一样的(或者有反例吗?)

对于指针,只有数据类型的大小才是重要的。如果我交替使用 char *unsigned char * 有什么陷阱吗?

我觉得这些帖子没什么用 :(

Difference between unsigned char and char pointers

Why short* instead of char* for string? Difference between char* and unsigned char*?

最佳答案

下面是一个基于每个指针类型指向的类型范围差异的反例:

#include <stdio.h>
int main() {
  unsigned char *uc;
  char *c;
  unsigned char v = 128;
  uc = &v;
  c  = &v;
  if (*uc != *c)
    printf("there is difference\n");
  return 0;
}

关于c - 有符号字符指针和无符号字符指针之间的工作区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9825844/

相关文章:

c++ - 如何使用 libqrencode 创建 Wifi 连接的二维码?

c - 检查用户输入A还是B并忽略其中的空格

c - 输出说明 : A complicated pointer arithmetic

c - 使用宏初始化通过引用传递的结构

c++ - 迭代 char* 错误没有从 char* 到 int 的转换

c - 如何使用 C 比较十六进制值?

c - Node.js与C语言通信

c - 指向函数的指针有什么用?

在 C 中从 float 转换为 unsigned char

c++ - C++ 17之前的char8_t/UTF8 chars状况不佳吗?