如何使用指针访问char *中的字符

时间:2015-08-02 11:03:20

标签: c++ arrays pointers char pointer-arithmetic

我有这个函数,它使用数组符号打印出char *中的每个字符:

void printCharArray(char* c,int n)
{
    for(int i=n-1;i>=0;i--)
        cout << c[i]; // or *(c+i)
}

除了使用符号c[i]*(c+i)之外,在这种情况下,有没有什么方法可以用指针及其算术实现相同的结果?

1 个答案:

答案 0 :(得分:0)

是的,你可以:

for (char*p=c+n-1; n; n--) 
    cout << *p--;

顺便说一句,cout输出char的cout是一个很大的开销。 cout.put(*p--);将是一个更轻松的选择

如果你需要保持你的论点不变以进行进一步处理,可以选择以下方法:

for (char*p=c+n-1; p!=c-1; p--) 
    cout.put(*p);

当然,所有这些都假定n> = 0。