首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用字符指针打印字符数组

使用字符指针打印字符数组
EN

Stack Overflow用户
提问于 2013-09-06 18:29:51
回答 8查看 7.4K关注 0票数 2

我有一个关于指针的问题。当我在函数中使用指向char数组的指针遍历char数组时,原始数组保持不变,但是当我在主函数中执行它时,我无法打印char数组。

我对指点很陌生。

代码语言:javascript
运行
复制
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;
}

但,

代码语言:javascript
运行
复制
int main()
{
    char* a1 = "test";
    while (*a1!=0) {
    *(a1++);
    }
    cout <<a1<<endl; // won't print anything
    return 0;
}

所以我的问题是,即使我传递指向函数的指针,为什么原始数组不被修改呢?

EN

Stack Overflow用户

发布于 2013-09-06 18:34:46

调用函数时,您不会更改a1。您只需要更改传递给该函数的a1的副本:a

但是当您在主函数中调用a1++时,您正在更改a1,当它完成时,a1将是0'\0'

票数 3
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18664300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档