main()
{
int i;
char f="%12.8s\n",*s="*******";
for(i=1;i<9;i++)
{
*(f+2)=2+i-1+'0';
*(f+4)=8-i+1+'0';
printf(f,s);
}
}
========求教该C语言程序运行结果是?及每句详细解释??另外 char *f="%12.8s\n"和printf(f,s);是什么意思?
#include<stdio.h>
void main()
{
int i;
char f[]="%12.8s\n",*s="*******";//定义f时少了[] 吧
for(i=1;i<9;i++)
{
*(f+2)=2+i-1+'0'; //i=1时,就是将字符'2'赋给f[2],以后每次加1
*(f+4)=8-i+1+'0';//i=1时,就是将字符'8'赋给f[4],以后每次减1
printf(f,s);//i=1时,将s中取出8个字符,输出占12列,以后每次少取一个字符,输出增加1列,右对齐,左侧补空格
}
}
输出不同长度的*!char f的意思是建立一个指针 printf里面的f直接替换成被修改后的f然后按照相应的格式输出不同长度的
12.8的意思是取字符串左边8位然后输出长为12位的字符串,长度不够的左边补空格。图中上面为12.8下面为14.16