我想问大家一个关于C语言的问题,我是菜鸟一只。

来源:百度知道 编辑:UC知道 时间:2024/05/03 01:01:26
int a=2,b=10;
printf("a=%%d,b=%%d\n",a,b);
但为什么有个d呢?如果是a=%d,输出的结果就没有d了呢

因为c语言中两个%%表示输出一个%,所以你那种情况,前面的两个%%就输出一个%,所以后面的d也随之输出了.
去了一个%,c语言中"%d"表示以整形输出,%与d合成一起了.
如果int a=2,b=10;
printf("a=%%%d,b=%%%d\n",a,b);
肯定会输出a=%2,b=%10;
不妨看看!

输出的结果应该是a=%d,b=%d.
a=%%d在输出的时候把第一个%看做是与后面的d一起组成整型输出格式(即按照整型格式输出),第二个%按照原形输出;同理在输出b=%%d时也是一样,第一个%按照格式符输出,第二个%原样输出!
补充一下楼主你的问题...
%d其实是一个整体,表示后面的变量按照整型格式输出,所以如果是a=%d输出的话就不会出现d了
这些全都是基础的基础...建议你多看些相关的知识

应该是a=%d,b=%d
你可以在vc上试试