我试图让我的头围指针,并且无法理解为什么使用dereference运算符来打印一个值在"\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);
}
Run Code Online (Sandbox Code Playgroud)
你没有初始化i:
for (int i; i < 6; i++)
Run Code Online (Sandbox Code Playgroud)
这应该是:
for (int i = 0; i < 6; i++)
Run Code Online (Sandbox Code Playgroud)
否则你有未定义的行为,你的循环根本不会执行.
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++)
^
Run Code Online (Sandbox Code Playgroud)