一个signed char指针和一个unsigned char指针之间的工作区别是什么?

7
我可以理解 signed charunsigned 的区别。但是,它们对应的指针在操作上不是等效的吗?因为 sizeof(char)sizeof(unsigned char) 总是相同的(或者有反例吗?)
对于指针来说,只有数据类型的大小才应该起作用。如果我可以互换使用 char *unsigned char *,那么是否存在任何陷阱?
我没有发现这些帖子很有用 :( unsigned char 和 char 指针之间的区别 为什么要使用 short* 而不是 char* 来表示字符串?char* 和 unsigned char* 有什么区别?
2个回答

5
这是一个基于指针类型所指类型范围差异的反例:
#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;
}

3
指针的类型告诉编译器指针指向的东西的类型,从而使编译器能够确保您正在正确使用该指针,并努力确保您不会出错。
编译器通过其错误和警告尽最大努力确保您开发的代码是正确的。请注意它们 - 编写编译器的人正在试图帮助您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接