指针变量指向字符串是指向的是首地址,为什么图中指针变量加i就是第i个字符,第一个字符地址不是0吗

指针变量指向字符串是指向的是首地址,为什么图中指针变量加i就是第i个字符,第一个字符地址不是0吗应该加i-1才是第i个字符啊

字符串常量的地址是字符串保存在内存的一组地址。字符数组的首地址代表着该字符串第一个元素的地址。

字符指针是指向字符类型的指针。字符指针并没有地址,当定义一个字符指针变量后,这个变量便有了自己的地址,字符指针变量同时保存着某个地址,这个地址也可以指向单个字符元素,也可以指向字符串。
如:
char a;
a=getchar();
char *p;//变量p本身有一个地址.
p=&a;//p保存了变量a的地址,也就是说p指向了a.
同样地,
char a[20]="english";
char *p=a;//p保存了字符数组的首地址,也就是说p指向了该数组的第一个元素。
求赏分~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-22
嗯,你的理解是对的,不过一般也就这样说了。第0个,第一个,第二个,免得每次都说 第 i + 1 个。理解意思就好。追问

懂了,谢谢

本回答被提问者采纳
相似回答