求问,刚开始学习C语言,有个问题如下图所示,为什么一个printf不用&符号,一个又要?

ch和&ch1的&问题

&ch1表示对char类型取地址,最终类型为char*(c类型字符串),printf用%s来输出char*语法上没有问题
但是这个代码有个严重bug,用%s输入的char*必须用\0结尾,这个程序估计要crash
正确写法应是printf("%c\n",ch1);
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-10
是错误"&"是一个地址符,而"%s"是输出字符串,在printf后面加"&ch"是输出地址,而输出地址要加"%d"不是"%s",所以错了,这个数是输不出的。还有"ch"不是数组只可以存一个字符,应该是scanf("%c",&ch);才对。
第2个回答  2013-07-10
前者输出的是一个数,因此不加,而后者输出的是一个字符串加上的意思是取首地址

求问,刚开始学习C语言,有个问题如下图所示,为什么一个printf不用&符号...
正确写法应是printf("%c\\n",ch1);

在c语言当中 ,printf的格式控制符里边的(%d%d )和(%d,%d),为什么有的...
如果不隔开,输出的数字是连续输出的,所以一般都隔开了的,当然,如果已经设定输出宽度,而且没有输出满,这时可以不分隔

c语言中 如scanf("%d",&a)为什么要加& 而printf(“%d",a+b)里却没有...
这个符号"&",是取地址运算符,由于scanf是输入函数,所以在输入时,一定要告诉计算机这个东西往哪存储,所以就要把程序员想存储的地址先取出来,然后在往这个地址里输入内容。而printf是标准输出函数,就是在显示器上把要显示的东西给显示出来,所以都是在显示器上显示,不用什么取地址符号。%f表示浮点型...

在C语言中,结构体成员的引用为什么有时候可以不用“&"?
你在前面定义结构体时应该把name定义为一个字符型数组,如char name[10];因为姓名是用字符串表示的。应填为:stu[i].name,&stu[i].num,&stu[i].age.第一个不能用&,因为数组名name就代表了该数组的首地址,而&就是一个取地址符号,所以不需再用&,而后面的num,age都只是整型变量,所以要...

C语言题!为什么两个输出语句画红线的地方一个有逗号一个没有
可以有也可以没有 只是有的时候,这两个输出的值中间会出现逗号 没有的时候,则中间没有逗号 (逗号在printf的字符串中没有特殊意义,因此如果字符串中有逗号,会原模原样地输出)比如 printf("%d,%d",3,4); 将输出3,4 printf("%d%d",3,4); 将输出34 printf("%d %d",3,4); 将输出3 4...

新人开始自学C语言,有个问题不明白 问题1:printf("%d",123)和printf(1...
printf("%d",123)在后面加一个分号就是个正确语句,能输出十进制整型数据123;printf(123)即使在其后加一个分号也是错误语句,连编译都过不了。printf可以直接输出字符串,如printf("123");在屏幕上打印字符串123;输出其他类型数据时必须有格式化控制字符串参数,否则就出错,如printf(123);就要出错,...

C语言的一个简单问题,两个printf为什么一起输出?
printf函数是可变参数的,可以传入任意多个变量进行输出。 所以如果不是两次printf之间有必要的用户输入,任何时候都可以使用一个printf进行输出。 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。格式输出,它是c语言中产生...

C语言的printf函数的简单问题 其中第一个printf为什么是%2d?而不...
2d表示占两位,%nd表示占n位 5.1f表示占5位且小数点后留一位

c语言中,printf(“”)是什么意思?为什么括号里面什么都不加
就是打印一个空字符,说白了就是占个位置。printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输...

C语言,一个小问题,为什么在if后面一直都没有花括号?
1、加上大括号相当于一个语句块,if条件只影响其后面的第一个语句或语句块,加括号的话,则执行括号中的全部语句(也就是在if条件成立的情况下,则全部执行,如果if条件不成立,则整个括号中的语句都不执行);而不加括号的话,则影响其后的第一条语句,也就是说不管if条件成不成立,第一句以后的...

相似回答
大家正在搜