字符1与数字1的区别

版权声明:如若转载,请联系作者。 https://blog.csdn.net/liu16659/article/details/86508476

字符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;但是我们执行程序之后,发现得到的结果如下:
在这里插入图片描述

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

2.c 代码

看完Java代码之后,再看看C语言的表述。如下:
在这里插入图片描述

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

原因

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

猜你喜欢

转载自blog.csdn.net/liu16659/article/details/86508476
今日推荐