printf中*的作用

Posted TPMer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了printf中*的作用相关的知识,希望对你有一定的参考价值。

/*
*的作用是用后面的整数或变量代替原来应该出现在格式串中的数字。
如:
printf("a = %.*f", 4, 3.1415926535);

将输出3.1416

这是百度知道的结果
*/

#include<stdio.h>

int main()

    int i,j,k;
   
    for(i=1; i<=5; i++)   
        printf("%*d\\n",i,2);    //这里会跳过输出i的值而输出后面的2
       
    for(i=1,j=1; i<=5; i++,j++)   
        printf("%*.*d\\n",i,j,2);    //同上,只不过第二个跳过的用0代替了
       
/*
    printf("%*d\\n",2,2);
    printf("%*d\\n",3,2);
    printf("%*d\\n",4,2);
    printf("%*d\\n",5,2);*/
   

还有网上的一种:

#include<stdio.h>
void main()

 int i=1;
 printf("##%*d\\n",i,i);
 i++;
 printf("##%*d\\n",i,i);
 i++;
 printf("##%*d\\n",i,i);


输出:

##1 ## 2 ##  3


所以由此可以猜测*的作用是代替后面的变量值,比如int i=3;printf("%*d",i,i); 相当于 printf("%3d",i)这是对于一个*的结果。


以上是关于printf中*的作用的主要内容,如果未能解决你的问题,请参考以下文章

C语言printf中%s%*s%*.*s的作用以及实现一个进度条

C语言printf中%s%*s%*.*s的作用以及实现一个进度条

C语言printf中%s%*s%*.*s的作用以及实现一个进度条

C语言printf中%s%*s%*.*s的作用以及实现一个进度条

在C语言程序中default表示啥意思?起啥作用?

在调用asm函数之前调用printf与否的神秘副作用?