您好我是C的新手,我正在尝试打印我自己设置的字符串,但它会打印垃圾.
我知道id[4]是'\0'这样,我没有设置它.
int main(){
char id[5];
printf("Enter a string\n");
id[0]=1;id[1]=2;id[2]=3;id[3]=4;
printf("You entered the string %s\n",id);
}
Run Code Online (Sandbox Code Playgroud)
我知道的
id[4]是'\0'
嗯,你错了.
id作为自动局部变量,除非明确初始化,否则它包含不确定的值.所以,你不能确定任何价值,更不用说了'\0'.
引用C11,§6.7.9
如果未显式初始化具有自动存储持续时间的对象,则其值不确定.[....]
但是,如果你初始化它就像
char id[5] = {0};
Run Code Online (Sandbox Code Playgroud)
然后,通过初始化规则,所有元素都被初始化为0,然后您可以依赖于空终止.
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |