C语言的问题,请大侠帮忙

来源:百度知道 编辑:UC知道 时间:2024/04/30 02:50:49
有道题是问运行结果
#include<stdio.h>
main()
{ char s[]="abcde";
s+=2;
printf("%d\n",s[0]);
}
该题答案是运行出错
请问如题的定义是什么含义呢,正确如何定义呢,又如何访问abcde中的个别字母呢
谢谢帮忙

s表示s[0]的地址,
相当于一个指针常量,
不能进行赋值操作(s+=2),
s+=2就是s=s+2,
这是个赋值语句.

同时,打印字符串也不能用%d,
要用%s.

所以问题不是出在你认为的地方.
按题目的原意,可以这么改
-------------------
main()
{
char s[]="abcde";
printf("%s\n",s+2);
}

s[]

是一个“指针常量”,不能修改它的值,而程序中的s+=2却试图修改s的值,所以出错。

把这一句去掉就是一个正确的程序。访问abcde中的个别字母可以通过s[0]、s[1]、......、s[4]进行