问题:
[单选] 有下列程序:main()
{ char s[]=”abode”;
s+=2:
printf(”%d\n”,s[o]);
)
执行后的结果是( )。
A . 输出字符a的ASCII码
B . 输出字符c的ASCII码
C . 输出字符c
D . 程序出错
参考答案:D
参考解析:
D。【解析】因为字符数组s[]中的数组名s表示的是一个地址常量。所以语句“s+一2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。
有下列程序:main(){ char s[]=”abode”;s+=2:printf(”%d\n”,s[o]);)执行后的结果是( )。
问题:
[单选] 有下列程序:A . 输出字符a的ASCII码
B . 输出字符c的ASCII码
C . 输出字符c
D . 程序出错
参考答案:D
参考解析:
D。【解析】因为字符数组s[]中的数组名s表示的是一个地址常量。所以语句“s+一2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。