c++ - 改变数组元素的值

标签 c++

我目前正在研究 C++ Primer 第五版中的练习 3.35!我使用 while 循环完成了这个练习。但是当我使用 for 循环来尝试这个练习时,我无法解决更改数组元素值的问题。 (我确实解决了问题,但没有使用指针)。
我需要的是,如果你能帮我解决这个练习,在for循环中使用指针改变数组的值。

自己锻炼
使用指针,编写程序将数组中的元素设置为 0(零);

我使用指针的代码

int main()
{    
    int arr[] = {1,2,4,6,8,10,12,14,16,18};
    int *pbeg = begin(arr);
    int *pend = end(arr);

    while (pbeg != pend)
    {
        pbeg[0]=0;
        ++pbeg;
    }   
    for (auto ii : arr)
    {
        cout<<ii<<" ";
    }
    keep_window_open("~");
    return 0;
}  

for 我做过的循环代码

int main()
{    
    const size_t ar =10;
    int arr[ar] = {1,2,4,6,8,10,12,14,16,18};

    for (size_t i = 0; i < ar; ++i)
    {
        arr[i]=0;
    }
    for (auto ii : arr)
    {
        cout<<ii<<" ";
    }
    keep_window_open("~");
    return 0;
}  

在这个 for 循环中我没有使用任何指针。

最佳答案

试试这个:

for(int i = 0; i < size; i++) {
    *(pbeg+i) = 0;
}

pbeg 是您的内存地址,因此您添加 i 以向前移动那么多元素。

关于c++ - 改变数组元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17498160/

相关文章:

c++ - 在 Windows 的 dirent.h 中找不到 mkdir() 函数

c++ - 派生类作为模板参数有什么用?

c# - 如何使用 PInvoke 导入函数模板?

C++ 返回 MyClass* 与 MyClass

c++ - 如何通过写入其输入流来退出 "mysql.exe"进程(使用 CreateProcess() 创建的进程)

c++ - 为什么局部变量实例化失败但静态实例化失败?

C++ 构造函数和静态成员

c++ - 如何处理未能释放包含在智能指针中的资源?

c++ - 使用子函数的继承函数

c++ - 添加存储在 vector 中的大整数的函数问题