动态数组中的数组循环终止

我不久前就开始学习编程,并且正在练习数组循环。我想问一下动态数组的循环是否不能以空字符终止。

for(int i=0;arr[i]!='\0';i++)

以及如何在不使用这种格式的情况下终止这些循环(因为我还没有学过)

for(const auto& value : arr)