为什么加上{}就没有警告,书上不是说可以省略花括号吗?

问题遇到的现象和发生背景

为什么加上{}就没有警告,书上不是说可以省略花括号吗?

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include
#include

int main()
{
    char p1[20] = "ABC";
    char p2[10] = "abcdef";    
    strcpy(p1, p2);
    puts(p1);
    return 0;
}

运行结果及详细报错内容

警告 C6001 使用未初始化的内存“p2”。

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

没有加括号时,指针无法确定指向的内存

主函数省略花括号??

那也得分在啥情况下呀

for,if,while语句可以省略花括号,但是int main()不行