C++ 取消引用运算符和endl没有输出
我试图绕过指针,无法理解为什么在C++ 取消引用运算符和endl没有输出,c++,pointers,C++,Pointers,我试图绕过指针,无法理解为什么在“\n”时使用解引用运算符打印值效果良好被添加到行中,但由于某些原因,我在使用endl时没有得到任何输出。终端显示无输出,带有endl。这是不是跟你有关 #包括 使用名称空间std; int main() { int arrayA[]={0,1,2,3,4,5}; int*ptr\P; ptr_P=arrayA; for(int i;i
“\n”时使用解引用运算符打印值效果良好代码>被添加到行中,但由于某些原因,我在使用endl时没有得到任何输出代码>。终端显示无输出,带有endl代码>。这是不是跟你有关
#包括
使用名称空间std;
int main()
{
int arrayA[]={0,1,2,3,4,5};
int*ptr\P;
ptr_P=arrayA;
for(int i;i<6;i++)
{
您不能初始化i
:
for (int i; i < 6; i++)
for(int i;i<6;i++)
这应该是:
for (int i = 0; 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++)
^
main.cpp:在函数“int main()”中:
main.cpp:10:14:警告:此函数中可能未初始化就使用了“i”[-Wmaybe uninitialized]
for(int i;i<6;i++)
^
您没有初始化i
:
for (int i; i < 6; i++)
for(int i;i<6;i++)
这应该是:
for (int i = 0; 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++)
^
main.cpp:在函数“int main()”中:
main.cpp:10:14:警告:此函数中可能未初始化就使用了“i”[-Wmaybe uninitialized]
for(int i;i<6;i++)
^
它对我使用endl是有效的…没有理由不这样做。你确定你正确地重建了程序吗?简直不敢相信。endl不起作用的唯一情况是当endl被重新定义为其他内容时。因此请尽量不要使用使用命名空间std
并用std::endl
替换endl
,只要重新执行即可g“\n”对于endl,我使用的是Netbeans 8。这是我上面的整个程序。std::endl没有解决这个问题。因此,您通常并不真正需要std::endl
,只需在行尾编写'\n'
,并仅在真正需要时刷新。请记住,当流关闭时,输出流将被刷新,而当程序关闭时,输出流将被刷新m退出。如果我在终端中键入make testprogam,然后键入./testprogram,我仍然什么也得不到。它对我使用endl有效…没有理由不起作用。你确定你正确地重建了程序吗?难以置信。endl不起作用的唯一情况是endl被重新定义为其他内容。因此请尽量不要使用使用namespace std
并将endl
替换为std::endl
仅替换“\n”对于endl,我使用的是Netbeans 8。这是我上面的整个程序。std::endl没有解决这个问题。因此,您通常并不真正需要std::endl
,只需在行尾编写'\n'
,并仅在真正需要时刷新。请记住,当流关闭时,输出流将被刷新,而当程序关闭时,输出流将被刷新如果我在终端中键入make testprogam,然后键入./testprogram,我仍然什么也得不到。。