printf("a=%d,b=%d",a,b);和printf("%d,%d\n",a,b);的区别.

特别是前一个多了那个=符号,有点摸不着头脑

一、格式化输出的不同:printf("a=%d,b=%d",a,b)打印出来的是a="a的值",b="b的值",如果a和b的值分别为1、2,则打印到屏幕上的结果是a=1,b=2。printf("%d,%d\n",a,b)打印出来的只有a和b的值,如果a和b分别为1、2,则打印到屏幕上的结果是1,2。这种结果的区别是格式化输出的作用,在printf中双引号里面的内容按原样输出,而%后面带一个字符是引号后面参数的格式化,代表用什么样的格式输出后面的参数。

二、转义字符的有无:printf("%d,%d\n",a,b)里面有一个转义字符\n,这个转义字符的功能是换行,也就是说下一个输出会在下一行,而printf("a=%d,b=%d",a,b)没有这个转义字符,所以它不会换行,下一个输出直接接在上一个输出的后面。

三、运算符的有无及作用:printf("a=%d,b=%d",a,b)里面的=不是赋值,而是直接输出一个=,printf("%d,%d\n",a,b)没有=,所以没有=的输出。

扩展资料:

c语言中,printf是一个输出函数,可以输出数据到屏幕上,printf函数的格式为printf(参数1,参数2,……,参数n)。参数1是用双引号括起来的,里面的内容是需要按照原样输出到屏幕上的,而%后面接一个字母是一种格式化的输出,参数1里面有多少个%,参数1后面就有多少个参数,参数1后面的每一个参数都对应一个参数1里面的%,按照相应的格式打印在屏幕上。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-10
printf函数双引号内的内容除了%什么是原样输出的,所以你写成什么都会输出,你写成等号是想输出时比较容易理解,知道是哪个变量的值,输出是a=什么,没有的就直接输出a的值了,你也可以写成别的比如“a的值是:%d”,它也会输出,主要你要理解这个函数的意义和用法。。。本回答被提问者和网友采纳
第2个回答  2019-10-15
百分号%表示占位符,代表需要把一个数据填到对应的地方,百分号后面的字符说明了这种数据的类型。例如%d表示十进制整型、%f表示浮点数、%s表示字符串。
第3个回答  2009-08-17
只是显示出来的结果不太一样。
例如,如果a=10,b=20
那么
printf("%d %d\n",a,b);显示的结果如下行
10 20
printf("%d,%d\n",a,b);显示的结果如下行
10,20
printf("a=%d,b=%d",a,b);显示的结果如下行
a=10,b=20
就是在双引号里你写了什么,输出时就显示什么,其中%d按先后顺序,由a和b的实际值代替。
第4个回答  2011-09-10
第一个输出是为了让输出的格式更好看,更明确,a= 和b= 会照程序原样输出。
相似回答