如何使用指针访问 char * 中的字符
How to access character inside char * using pointer
我有这个函数,它使用数组表示法打印出 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 for char by char output 是一个很大的开销。 cout.put(*p--);
会是一个更轻便的选择
以防万一您需要保持参数不变以进行进一步处理,这里有一个替代方案:
for (char*p=c+n-1; p!=c-1; p--)
cout.put(*p);
当然,这一切都假设n>=0。
我有这个函数,它使用数组表示法打印出 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 for char by char output 是一个很大的开销。 cout.put(*p--);
会是一个更轻便的选择
以防万一您需要保持参数不变以进行进一步处理,这里有一个替代方案:
for (char*p=c+n-1; p!=c-1; p--)
cout.put(*p);
当然,这一切都假设n>=0。