全部问题 > 当前问题

要想输出t..不应该是s+2吗..为什么是*s+2

朱文 2017-8-16 14:23:12

共 5 个回答

957 2017-8-16 14:35:40

*s+2是指 *s为'r',然后r的ASCII码+2得到't'

另外s+2是没法输出的,因为它是地址。

朱文 2017-8-16 14:52:32

回复 957:如果用scanf输入那么就要是地址是吧?

朱文 2017-8-16 14:54:59

回复 957:r的ascii码+2不应该是q吗


957 2017-8-16 15:00:05

回复 朱文:opqrst,怎么会倒回去呢。-2才是q。scanf输入是地址。

朱文 2017-8-16 15:09:32

回复 957:哦对哦。。我都给数错了

问题来自: 指针和字符串
有以下程序
#include <stdio.h>
main()
{
  char s[]="rstuv";
  printf("%c\n",*s+2);
}
程序运行后的输出结果是 ______ 。
A. tuv
B. 字符t的ASCII值
C. t
D. 出错
答案:C
解析:数组s 就可以写成 *s,*s指向的是数组的首位也就是'r','r'+2='t',因此选C。