小编sak*_*ura的帖子

java打印char数组

我正在运行此代码和

char[] str = { 'a', 'b', 'c', 0, 'c', 'c', 'f' };
System.out.print(str);
System.out.println(" adksjfhak");
Run Code Online (Sandbox Code Playgroud)

这打印只是"abc".而,

char[] str = { 'a', 'b', 'c', 0, 'c', 'c', 'f' };
System.out.print(str);
System.out.println("\n adksjfhak");
Run Code Online (Sandbox Code Playgroud)

版画

abc
 adksjfhak
Run Code Online (Sandbox Code Playgroud)

为什么打印缓冲区停止为null(0)字符?这是否意味着Java只是保持追加字符缓冲并打印缓冲区?当然,由于缓冲区之间有0,它会丢弃其余的字符串.

可能我已经回答了我自己的一部分问题.但我想知道更多关于此的细节.HOW JVM处理这个?这个输出缓冲区在哪里?有没有理由停在0?为什么添加\n会阻止此行为?

编辑1:使用JDK 1.7,Eclipse 3.8.1和Ubuntu 13.10

编辑2:奇怪的是,这个没有那个问题.https://ideone.com/VwFbRr

编辑3:我在命令行上运行相同的操作

[bin]$ java com.sakura.C 
abcccf adksjfhak
Run Code Online (Sandbox Code Playgroud)

java char system.out

6
推荐指数
1
解决办法
3万
查看次数

隐式声明如何工作

当您不包含和使用malloc时,我们会收到隐式声明警告.

"警告:内置函数'malloc'的不兼容的隐式声明"

此警告是由于编译器假定malloc定义为int malloc(size)void* malloc(size).

但它是如何知道的void* malloc(size)?我们没有在头文件中包含任何内容.那么如何将它与未包含的内容进行比较呢?

之后,我的代码如何工作?它如何找到正确的malloc定义并使用它?

是否有扫描函数定义的序列顺序?

c declaration

3
推荐指数
1
解决办法
464
查看次数

标签 统计

c ×1

char ×1

declaration ×1

java ×1

system.out ×1