程序输出问题,求助各位大神
这个程序中的a输出的为什么是107而不是8c2输出的为什么是B
#include<stdio.h>
void main()
{
int a,b=322;
float x,y=8.88;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c\n",a,x,a,c2);
} #include<stdio.h>
void main()
{
int a,b=322;
float x,y=8.88;
char c1='k',c2;
a=y;
x=b;
a=c1;
c2=b;
printf("%d,%f,%d,%c\n",a,x,a,c2);
printf("%c \n",322); // c2=b 关系 char = int把一个整型322赋值给字符c2;这句直接用322以%c输出得B
} #include <stdio.h>
int main(void)
{
int a, b = 322;
float x, y = 8.88;
char c1 = 'k', c2;
a = y;//先将y的值赋给a,因为类型不同,会造成数据的丢失,即现在a的值为8
x = b;//将b的值赋给了x, x为浮点型,所以输出为322.000000
a = c1;//又将c1的值重新赋给了a,a为整型,c1为字符型,但整型和字符型存储方式是相同的,所以这里相当于给a赋值为k的ASCII值: 65
c2 = b;//同理,b为322,即此时的c2也为322,但c2为字符型,所以输出的是ASCII 322所对应字符,查表可知, c2是'B'.
printf("%c %d\n%f\n%c %d\n", a, a, x, c2, c2);
return;
}
一起沟通交流 k 107
322.000000
B 66
请按任意键继续. . .
549444387@qq.co 发表于 2018-1-24 09:40
#include
int main(void)
ASCII码中的B不是66吗?为什么ASCII一共127可以输出322的字符? ASCII码一共有255个字符, 如果超过的话应该是从新开始的, 即256是0 我试验过是正确的。你可以找一下ASCII码与常用字符的对照表就可以了
#include <stdio.h>
void main()
{
char c;
int i = 257;
c = i;
printf("%c\n", c);
}
你可以运行一下这个 结果对应的是ASCII码001对应的字符 这个知识点是int和char的取值范围 549444387@qq.co 发表于 2018-1-24 11:23
ASCII码一共有255个字符, 如果超过的话应该是从新开始的, 即256是0 我试验过是正确的。你可以找一下ASCII ...
{:10_254:}谢谢指教 焦糖橙子 发表于 2018-1-24 18:22
谢谢指教
我也是刚学C没多久 一起学习吧 感觉学C必须要亲自打出来验证自己的想法才行
页:
[1]