经典指数          
原因
2695
浏览数
0
收藏数
 

数字字符0的ASCII值为48,若有以下程序:
main()
{
    char a=’1’,b=’2’;
    printf(“%c,”,b++);
    printf(“%d\n”,b-a);
}
程序运行之后的输出结果是:
  • 3,2
  • 50,2
  • 2,2
  • 2,50

     举报   纠错  
 
切换
1 个答案

虽然程序跑出来结果是c,但是还是不太理解。printf()函数先入栈再出栈,所以应该先执行后面的b++,然后再打印。那么执行b+1和入栈哪个在前呢?从结果来看的话,那就是先将b的值‘2’保存在栈中,然后b+1,最后将栈中的值取出来并打印。

 
切换
撰写答案