指针类型的算术/

时间:2009-12-25 01:55:06

标签: pointer-arithmetic

使用数字和字符指针添加和减去类似类型指针的一些示例。使用C.

感谢。

2 个答案:

答案 0 :(得分:1)

您可以检查this以了解指针算法

答案 1 :(得分:1)

这是一个从C字符串中提取单个字符的实际示例:

char charAt( char *str, size_t idx) {
    if (idx > strlen (str))
        return '\0';
    return *(str+idx);
}

或者另一个,它将数组中的整数与紧接在它之前的整数交换(没有范围检查):

void swapInts( int *base, size_t idx) {
    tmp = *(base+idx);
    *(base+idx) = *(base+idx-1);
    *(base+idx-1) = tmp;
}

在这两种情况下,*(pointer+offset)pointer[offfset]相同,但使用指针算术而不是数组偏移:

*(str+idx)        ->     str[idx]
*(base+idx)       ->     base[idx]
*(base+idx-1]     ->     base[idx-1]

警告:不要在作业中逐字逐句地使用它们,考虑一下然后自己编写。如果你逐字复制它们,你几乎肯定会失败,因为你的教育工作者也毫无疑问会看到这些网站。