解引用操作符和endl没有输出

No output for dereference operator and endl

本文关键字:输出 endl 引用 操作符      更新时间:2023-10-16

我试图得到我的头周围的指针,不能理解为什么使用解引用运算符打印一个值很好,当"n";被添加到行,但由于某种原因,我没有得到任何输出,当我使用endl;endl;接线端子无输出。这是否与输出缓冲区刷新有关?

#include <iostream>
using namespace std;
int main()
{
    int arrayA[] = {0, 1, 2, 3, 4, 5};
    int * ptr_P;
    ptr_P = arrayA;
    for (int i; i < 6; i++)
    {
        cout << *ptr_P << "n"; // Works fine, but endl; does not
        ptr_P++;
    }
   return(0);
}

您没有初始化i:

for (int i; i < 6; i++)

应该是:

for (int i = 0; i < 6; i++)

,否则你有未定义的行为,你的循环可能根本不会执行。


请注意,任何启用了适当警告的优秀编译器都会指出这个错误,从而为您节省一些时间和精力:

main.cpp: In function 'int main()':
main.cpp:10:14: warning: 'i' may be used uninitialized in this function [-Wmaybe-uninitialized]
     for (int i; i < 6; i++)
              ^