字符x [50]和字符x [100]输出

Max*_*Max 1 c char strcat

我不习惯C,因为我主要是一个Java人,对C++有一定的了解,所以如果这是一个微不足道的问题,请原谅我.我在网上搜索时似乎无法找到答案.

我正在初始化一个char数组......

char tcp[50];
Run Code Online (Sandbox Code Playgroud)

这样我就可以连接一个const char和一个char.在示例中,我看到一个简单的方法是通过创建空char数组然后使用...

strcat(x,y);
Run Code Online (Sandbox Code Playgroud)

将它们粘在一起

问题是,当它设置为"50"时打印出空白字符数组给我一个结果:

X??|? 
Run Code Online (Sandbox Code Playgroud)

当我把它改成......

char tcp[100];
Run Code Online (Sandbox Code Playgroud)

打印它,它的空白.为什么是这样?

rod*_*igo 7

假设它是一个本地(自动)数组,数组内容是未定义的.

使用:

char tcp[50] = "";
Run Code Online (Sandbox Code Playgroud)

要么:

char tcp[50] = {0};
Run Code Online (Sandbox Code Playgroud)

要么:

char tcp[50];
tcp[0] = 0;
Run Code Online (Sandbox Code Playgroud)

要么:

char tcp[50];
memset(tcp, 0, sizeof(tcp));
Run Code Online (Sandbox Code Playgroud)

随你心意.


归档时间:

查看次数:

1008 次

最近记录:

13 年,8 月 前