下列程序运行后,则输出结果是:_______。 #include”stdio.h” main( ) { char s[]=”1357”,*t; t=s; printf(“c%0e\n”,*t,++*t); }

admin2014-10-20  25

问题 下列程序运行后,则输出结果是:_______。
  #include”stdio.h”
  main(    )
  {
char s[]=”1357”,*t;
t=s;
printf(“c%0e\n”,*t,++*t);
}

选项

答案2 2

解析 当函数调用时,其参数的传递是从右至左的。即先将++*t传递给printf函数,此时,指针t指向字符数组的首位置,然后进行自加运算,’1’+1=’2’,因此字符2覆盖了原位置处的字符1;当再将第二个参数*t传递给printf函数时,由于t仍然指向字符数组的首位置,而首字符已经变为2,所以当按顺序输出时,其结果为:2,2。注意:函数参数的传递是从右至左的,但传递以后,执行结果仍然按顺序输出的。
转载请注明原文地址:https://jikaoti.com/ti/q99fFFFM
0

最新回复(0)