我有一个关于指针的问题。当我在函数中使用指向 char 数组的指针遍历 char 数组时,原始数组保持不变,但是当我在 main 函数中执行此操作时,我无法打印 char 数组。
我是指针的新手。
void f(char* a)
{
while (*a!=0) {
*(a++); // going through array
}
}
int main()
{
char* a1 = "test";
f(a1);
cout <<a1<<endl; // I can normally print out "test"
return 0;
}
但,
int main()
{
char* a1 = "test";
while (*a1!=0) {
*(a1++);
}
cout <<a1<<endl; // won't print anything
return 0;
}
所以我的问题是,即使我将指针传递给函数,为什么原始数组没有被修改?