C语言表达式?给我讲下含义》
发布网友
发布时间:2024-03-07 12:10
我来回答
共3个回答
热心网友
时间:2024-03-12 07:25
printf("*%-06d*\n",x);
- 表示从左往右输出;06 表示输出6位,如果不满6位就输出空格,超过6位就截取前6位。
%d就不用我说了吧。
-06 合起来就表示从左往右输出6位,如果不满6位就输出空格,超过6位就截取前6位。(其实这里用不着打0,只要打个6就可以了)。
——————————————华丽的分隔线—————————————
main()
{int x=10,y=20;
printf("x=%%d,y=%%d\n",x,y)
}
c语言中把%当成了输入输出函数(如scanf和printf等等)的参数个数的标记,因而在要输出百分号的时候会出现冲突,为此,把它设置为当有两个连续百分号的时候才打印百分号。以此来区分。
printf("x=%%d,y=%%d\n",x,y);
所以上面这条语句中的%%d被理解为先打印一个百分号,再打印字符d。如果要打印x ,y,少个百分号就可以了;如果要打印 x=%10,y=%20 ,则还要加一个%
附: 楼主看的书有点过时了。main()的形式太旧了
按C99规范,应写成
int main(void)
{
return 0;
}
你的例子的代码风格很糟糕,挤成一团,不利于阅读差错。应该写成锯齿状。
推荐《C Primer Plus(第五版)中文版》。(不是讲C++,全是讲C的)这本书符合C99规范,内容详尽,代码风格友好。
热心网友
时间:2024-03-12 07:27
*2000 * /*-代表左对齐,后补空格,如果是右对齐,也就是没有-负号,则前补0/
x=%d,y=%d/*两个%%输出的是一个%,后面是一个d原样输出字符*/
热心网友
时间:2024-03-12 07:27
main()
{int x=2000;
printf("*%-06d*\n",x);
}(右括号落下了)
“”内是输出字符串,其中:
%开头的是格式控制符,%-6d可以输出整数(个人认为0是误输入)。,这里的-6表示的是,用6个字符宽度,输出数据,并且使该数据靠左输出。
\开头的是转义字符,\n表示回车,
其它字符全部原样输出。*即此类。
,后边的内容是输出列表,按顺序替换“”内的格式控制符,这里的x就替换%-6d。
本题的输出结果是:*2000 * (2000和*之间有两个空格)
main()
{int x=10,y=20;
printf("x=%%d,y=%%d\n",x,y)
}
按你的写法,输出结果是?x=%d,y=%d
main()
{int x=10,y=20;
printf("x=%d,y=%d\n",x,y)
}这是正确的程序写法,输出结果应该是:x=10,y=20