关于C语言初学者的问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 00:53:23
程序:
#include<stdio.h>
void main()
{
char c1='C',c2='h',c3='i',c4='n',c5='a';
c1=c1+4;
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c5+4;
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);
}
其中为什么“printf”不能用“getchar”代替。若用其代替,则警告“too many actual parameters for macro 'getchar'”。
另为什么后来c1,c2......赋值时也可以用c1='C'+4,c2='h'+4........ 这种形式,两种形式运行结果一致。那它们有区别吗?如果有,那有怎样的区别?如果没有,那是为什么呢?我估计是没有......
我一个人自学C语言很痛苦,有人愿意与我相互学习或者做我的导师吗???QQ910690776 呃,上面的getchar应该改成putchar

“printf”是输出指令~~把内容输出到控制台的~~getchar是读的指令,把控制台的内容读入的~~
比如:printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);就是把c1,c2,c3,c4,c5输出;
才c1=getchar();读入控制台的内容赋值给c1;
至于你说的赋值问题你可以看一下了解下C语言数据类型的优先级,char型的数据在C中是以int型存在,所以c1=c1+4和c1='h'+4是一样的,因为'h'也是char型的。

楼主基础没打好,getchar是输入函数,printf是输出函数,不一样的,另外,C语言里字母和数字是差不多一样的,字母也是一个数字,只不过占一个字节,数字一般是int型的,四个字节,我说的也不够详细,楼主还是好好看看书吧,C语言其实也挺有意思的

printf是输出到标准输出设备, getchar是从标准输入设备获取字符.

可以用putchar代替

putchar(c1);
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);

一个人学习C语言不难...

哥啊!getchar相当于是scanf啊,当然不能这样用。不过printf可以用putchar代替。
putchar只能输出一个字符哟!
还有就是不知道你到底编成什么样子了,我是这样的getchar(c1),倒是很正常的,没有出错,只不过没有输出的。
你后面说的这个呢,由于你定义了c1='C',所以呢c1=c1+4和c1='C'+4就没有区别了。因为他们相加的时候是这样运算的:
把C1存放的字符的ASCII码加四而得到,也就相当于把字符C的ASCII码加四。一样!