啊哈哈哈33 2022-03-24 13:53 采纳率: 25%
浏览 27
已结题

为什么运行会是这样的,刚写不久问一下

#include<stdio.h>
int main()
{
char a,b,c;
int d;
a='\5';
b='\60';
c='\A' ;
d=1089;
printf("a=%c,c=%d,d=%c\n",a,b,c,d);
return 0;

img

  • 写回答

3条回答 默认 最新

  • 关注
    
    
    a='\5';  \5是8进制表示,相当于a=5 (ascii码值),是一个控制字符,\后面跟数字的时候,表示8进制,且最多可以有3位8进制数字
    b='\60';  \60也是8进制表示,相当于b=48  (ascii码值)
    c='\A' ;  
    
    printf函数中,有3个%d,但是变量是4个,参数个数不匹配
    a=%c输出的是a的值,是控制字符(控制字符显示不出来,或者显示为方框)
    c=%d输出的是b的值,是48(char 提升为int类型,输出b的ascii码值)
    d=%c输出的是c的值,是A(转移字符失效,c='\A' 变成 c='A'
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月1日
  • 已采纳回答 3月24日
  • 创建了问题 3月24日