我不明白为什么 abc
后面有随机字符.是什么原因?如何只打印出来 abc
?谢谢!
#include <stdio.h>
int main()
{
char arr[3];
char(*ptr)[3]; // declare a pointer to an array
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';
ptr = &arr;
printf("%s\n", arr);
//printf("%s\n", ptr);
return 0;
}
最佳答案
字符串需要以 \0
结尾.确保分配足够的空间来存储终止符。
#include <stdio.h>
int main()
{
char arr[4];
char(*ptr)[4]; // declare a pointer to an array
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';
arr[3] = '\0'; // <-- terminator
ptr = &arr;
printf("%s\n", arr);
//printf("%s\n", ptr);
return 0;
}
请注意,使用
char arr[4]
您的数组中将包含随机内容。相反,如果你会使用char arr[4] = "abc";
这将导致
char arr[4] = {'a', 'b', 'c', 0};
看看其他地方是怎么填的
0
所以你不必自己设置。
关于c - 打印一个字符数组,但不希望结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60393990/