- 一道程序题能否将程序 main() {charc1='a',c2
- 能否将
main()
{char c1='a',c2='b',c3='c',c4='A',c5=N';
printf("a%c b%c c%c abc ",c1,c2,c3);
printf(" %c %c ",c4,c5);
}
改成
main()
{int c1,c2; (原为char c1,c2)
c1=97;
c2=98;
printf("%c %c ",c1,c2);
printf("%d %d ",c1,c2);
}
分析运行时会显示什么信息?为什么?
- 第一个程序输出aa bb cc abc注意要有空格,第二个程序输出a b 97 98
对第一个程序的输出比如a%c遇到字符原样输出,%c对应的是a所以输出a ,后面同理
第二个a 定义的是整型变量,其实他的作为是让系统分配给a所对应的地址4个bit当你赋值后,a变量所指对应的地址就有了信息,当输出时,不分原来是什么类型的,是把对应内存地址中的信息按要求输出,所以当以字符弄输出时,是ASC码中对应的字符,按整型则输出整数。