gpt4 book ai didi

c++ - 取消引用运算符和 endl 没有输出

转载 作者:太空宇宙 更新时间:2023-11-04 16:09:07 26 4
gpt4 key购买 nike

我试图理解指针,但无法理解为什么在将 "\n"; 添加到该行时使用解引用运算符打印值可以正常工作,但出于某种原因我当我使用 endl; 时没有得到任何输出。终端没有显示 endl; 的输出。这与output buffer flushing?有关吗?

#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++)
^

关于c++ - 取消引用运算符和 endl 没有输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30664376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com