小卢_TinyLu 2022-10-03 20:40 采纳率: 100%
浏览 33
已结题

scanf以不同于变量类型的格式描述符输入时,如何运作?

问题

scanf以不同于变量类型的格式描述符输入时,是怎么运作的?有个同学问了我这样的代码,一时间想不到原因。

代码

int main()
{
    int x;
    char y,z;
    scanf("%c%c%d",&x,&y,&z);
    
    printf("\tAscii\tchar\n");
    printf("x:\t%d\t%c\n",x,x);
    printf("y:\t%d\t%c\n",y,y);
    printf("z:\t%d\t%c\n",z,z);
    return 0;
}

输入

96 97 98

运行结果:

img

环境

Windows 10
MinGW GCC 11.2.0 64-bit Debug

  • 写回答

3条回答 默认 最新

  • X-道至简 2022-10-03 21:30
    关注

    (gdb) p &x
    $8 = (int *) 0x7fffffffe2bc
    (gdb) p &y
    $9 = 0x7fffffffe2bb ""
    (gdb) p &z
    $10 = 0x7fffffffe2ba "a"
    (gdb)

    x的地址是 0x7fffffffe2bc, y的地址是 0x7fffffffe2bb, z的地址是 0x7fffffffe2ba
    最后以%d给z赋值的时候覆盖了,x和y的值

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行