字符1与数字1的区别

1.java 代码

不废话,直接上程序题。

package test;

public class TestStringTokenizer {

    public static void main(String args[]) {
        char c1 = '1' ;
        System.out.println("c1 = "+(int)c1);
        System.out.println("c1 = "+Integer.valueOf(c1));

        System.out.println("===================");
        char c2 = 1 ;
        System.out.println("c2 = "+(int)c2);
        System.out.println("c2 = "+Integer.valueOf(c2));
    }
}

注意在程序中,定义了两个字符,分别是c1,c2。其中 c1='1',c2=1;但是我们执行程序之后,发现得到的结果如下:
字符1与数字1的区别

发现两者的实际意义却是不一样的。
c1表示的是字符0。但是c2表示的就是数字0。

2.c 代码

看完Java代码之后,再看看C语言的表述。如下:
字符1与数字1的区别

可以看到因为%c, %d的问题,可以将这个c1正常输出,但是因为将一个字符c2,定义成了底层的存储1,所以导致输出的就是一个你看不懂的乱码。

原因

引起这个现象的底层原因是:
char字符的存储在底层实际上是int型。所以导致出现这个问题。

相关文章:

  • 2021-05-11
  • 2021-09-24
  • 2021-12-12
  • 2021-12-04
  • 2021-08-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
  • 2022-01-14
  • 2021-09-23
  • 2021-11-09
  • 2021-12-14
相关资源
相似解决方案