0 c
我对以下代码片段感到困惑,因为对于相同的字符串,输出分别为1和2.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void main()
{
char str2[1]="a",str3[]="a";
printf("%d %d ",sizeof(str2),sizeof(str3));
getch();
}
Run Code Online (Sandbox Code Playgroud)
char str2[1]="a"
Run Code Online (Sandbox Code Playgroud)
为您提供包含内容的单元素数组{'a'}.此数组缺少用于表示C字符串结尾的nul终止符,因此您将无法str2用作字符串.
str3[]="a"
Run Code Online (Sandbox Code Playgroud)
给你一个char数组,其中包含一个nul-terminator的空间 - {'a', '\0'}