【发布时间】:2015-08-02 13:30:36
【问题描述】:
我有一个函数使用指针算法打印出 char* 中的所有字符:
void printCharArray(char* c,int n)
{
for (char*p=c+n-1; n; n--)
cout << *p--;
}
上面的代码有效,但我想尝试另一种不起作用的方法:
void printCharArray(char* c,int n)
{
char *p = &c [n - 1];
for (int i = 0; i < n; i++)
cout << *--p;
}
奇怪的行为是,如果我将 char *p = &c [n - 1]; 更改为 char *p = &c [n];,那么它可以工作,但我希望 &c [n - 1] 等于 char 数组中的最后一个字符,而不是 &c[n]?
【问题讨论】:
标签: c++ arrays pointers pointer-arithmetic