当我遇到这个奇怪的事情时,我正在学习指针和指向数组的指针。
谁能解释为什么这有效?
char str[] = "This is a String";
int *p = str;
while(*p) std::cout<<*p++;
并返回:
但这会产生一个令人讨厌的错误:
int arr[] = {1,2,3,4,5,6,7,8,9};
int *p = arr;
while(*p) std::cout<<*p++<<" ";
像这样 :
我知道这是未定义的行为,那么有什么办法可以解决这个问题吗?