指向数组下一个元素的指针

时间:2014-09-18 10:03:44

标签: c string pointers char

我正在努力解决C中的问题。如果我知道指向数组中前一个元素的指针,问题是如何获取指向数组中元素的指针?

假设我有一个字符串

s = "Hello World"

我有一个指向' o'在字符串中

char *p = strchr(s, 'o')

如果我知道p?

,我如何得到o指针?

2 个答案:

答案 0 :(得分:5)

如果您知道指向数组元素的指针未指向数组的最后一个元素,则表达式p+1将指向数组的下一个元素。无论数组元素的类型如何,此规则都有效,只要指针的基本类型与数组的元素类型相同:编译器在执行添加时会进行所有必要的调整。

因此,在strchr示例中,打印*(p+1)会打印一个空格。

Demo.

答案 1 :(得分:4)

正如dasblinkenlight已经提到的那样,你可以使用“Pointer Arithmetic”。

如果你有一个指针(p)并且你向它添加'x',你就会从指针所在的位置得到'xth'元素。