一道c语言的for语句

来源:百度知道 编辑:UC知道 时间:2024/07/04 07:14:48
书上有一例题for(i=0;(c=getchar())!='\n';i+=c);
请问变量i和c分别是什么类型的,再有printf输出的变量是i的什么类型还是c的什么类型

i 可以是int,也可以是char.
c 可以是int,也可以是char.
char可以赋值给int,因为int是两个字节,char是一个字节,存入int的低字节,不会被截断.反过来就会被截断.
printf输出的变量是i的什么类型还是c的什么类型是要看格式控制符来定的.用%d 就输出整型,用%C就输出字符.

i是int型
c是char型
没有print语句

应该是for(i=0;(c=getchar())!='\n';i+=c); printf("%d ",i);
i是int型
c是char型 (getchar从键盘输入字符赋值给c)

printf输出的变量是i,为int型,i+=c,将char型自动转换成int 型

i是整型,c是字符型,i+=c是按照c的arsic码值转换成整型参与计算,结果仍然是整形。
printf输出可以限制输出类型,要求它是什么就自动转换成什么,无所谓,看你怎么写程序了。