(C语言输出问题)我想问一下为什么第四行代码需要输入l才会输出跟键盘上输入的数据一致,去掉l会输出设置的初始值d,请大家指点

#include<stdio.h> 
int main() {
    double d=1.23;
    scanf("%lf",&d);
    printf("%f\n",d);
    return 0;
}

因为:double d , d 是double 型的数据,在输入时:对应的格式控制符为 %lf ,这是C语言的规定,当第四行代码改为 %f 时,没有从键盘读入正确的数据,所以会输出d的初始值 1.23。同时C语言里,在double float 型数据输出时,格式控制符可以是 %f 。