char name[40]中为什么要以数组形式,能不能直接char name后用scanf输入

char name[40]中为什么要以数组形式,能不能直接char name后用scanf输入

字符串和字符数组,存储形式是一样的,只是在使用时候稍微不太一样
用scanf输入是可以的,但是输入以前也要定义数组的大小

    char name[100] = {'\0'};
    scanf("%s", &name);

    char *name2 = (char*)malloc(100);
    scanf("%s", name2);

这和C#或者JAVA不一样,基于虚拟机的语言,虚拟机可以按输入的字符串申请空间,静态运行的不行,使用前就需要定义长度,