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

How to access character inside char * using pointer

本文关键字:字符 char 何使用 指针 访问      更新时间:2023-10-16

我有这样一个函数,它使用数组表示法打印出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)之外,在这种情况下,我是否可以通过指针和它们的算术实现相同的结果?

可以:

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

顺便说一下,逐个字符输出的计数开销很大。cout.put(*p--);将是一个更轻的选择

如果您需要为进一步处理保持参数不变,这里有一个替代:

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

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

相关文章: