可以分析一下下面代码的结果吗?不是很清楚*以及变量个数之间的关系是怎么呈现的


 
#include <stdio.h>
int main()
{
    int i=1;
    printf("##%d\n",i,i);
    i++;
    printf("##%*d\n",i,i);
    i++;
    printf("##%*d\n",i,i);
    i++;
    return 0;
}
 
 

*号指明了%d的字符宽度,对应参数中第一个参数为实际字符宽度
所以第二个printf输出的是宽度为2的数字2,第三个printf输出的是宽度为3的数字3
见:C primer plus中文版P95-96 printf中的*修饰符
有帮助望采纳

第一个printf只输出一个数值 1,第二个i是多余的没用
第二个printf输出02,第一个i对应到星号那里,表示输出数据的宽度,第二个i就是要输出的数
第三个printf输出003,同第二个解释一样

看看这个: %*d��c��������ʲô��˼_�ٶ�֪�� https://zhidao.baidu.com/question/577305001.html