在程序输出中遇到的十分困惑的问题

一般通常看到的像输出%10.4f或%6.5lf中
1)小数点“.”后的数字是不是代表保留有效数字?
2)那小数点“.”前的数字又代表什么?是不是代表小数点前面的数字的字节?如果是那我int a=1234; printf(“%2d”,a)的结果又为何是1234?那是不是%2d和%2.d所代表的含义不一样?
3)那为何%2与%02也不一样?
4)有没有相关的资料供参考呢,谢谢

https://blog.csdn.net/weixin_39867212/article/details/117102012?ops_request_misc=&request_id=&biz_id=102&utm_term=%25.2f%E5%92%8C%252.f&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-117102012.142^v63^control,201^v3^control_2,213^v1^t3_esquery_v2&spm=1018.2226.3001.4187