从网上收到一些理解:
1.char到底解释为 无符号还是有符号取决于编译器;
2.原因是int ,long 等C语言中已明确确定缺省情况下是有符号的,所以 int 指针和signed int指针可以相互赋值
在vs环境下,
char *var1;
signed char *var2 = var1;
和
signed char *var1;
char *var2 = var1;
都是无法编译通过的,问一下是为什么?
1.char到底解释为 无符号还是有符号取决于编译器;
2.原因是int ,long 等C语言中已明确确定缺省情况下是有符号的,所以 int 指针和signed int指针可以相互赋值
在vs环境下,
char *var1;
signed char *var2 = var1;
和
signed char *var1;
char *var2 = var1;
都是无法编译通过的,问一下是为什么?
解决方案
30
原因是这个符合隐式转换条件,但不同类型的指针不符合
10
原因是 ASCII编码只有 127 以内的128 个
所以,开始的时候,char类型,就不需要 128 以上的编码
因此,不很重视 他是有符号,还是无符号
假如是 一开始,就超过128 估计就固定下来了
由于开始没固定,后来标准里面就没表态
然后就成现在这个样子,由实现决定。
所以,开始的时候,char类型,就不需要 128 以上的编码
因此,不很重视 他是有符号,还是无符号
假如是 一开始,就超过128 估计就固定下来了
由于开始没固定,后来标准里面就没表态
然后就成现在这个样子,由实现决定。