我正在努力解决C中的问题。如果我知道指向数组中前一个元素的指针,问题是如何获取指向数组中元素的指针?
假设我有一个字符串
s = "Hello World"
我有一个指向' o'在字符串中
char *p = strchr(s, 'o')
如果我知道p?
,我如何得到o指针?答案 0 :(得分:5)
如果您知道指向数组元素的指针未指向数组的最后一个元素,则表达式p+1
将指向数组的下一个元素。无论数组元素的类型如何,此规则都有效,只要指针的基本类型与数组的元素类型相同:编译器在执行添加时会进行所有必要的调整。
因此,在strchr
示例中,打印*(p+1)
会打印一个空格。
答案 1 :(得分:4)
正如dasblinkenlight已经提到的那样,你可以使用“Pointer Arithmetic”。
如果你有一个指针(p)并且你向它添加'x',你就会从指针所在的位置得到'xth'元素。