我正在尝试使用指针循环一个整数数组,但我得到了一个奇怪的值..
int nums[1] = { 1 };
int *p = nums;
while(*p != NULL) {
cout << " LOOPING, p is " << *p << endl;
p++;
}
当我运行时,我得到下一个输出:
LOOPING, p is 1
LOOPING, p is -858993460
LOOPING, p is 4454504
LOOPING, p is 3032019
为什么我会得到那些奇怪的值?我应该只看到“1”,因为我一直循环直到得到 NULL 指针,并且在每个循环中我移动下一个指针。
最佳答案
while(*p != NULL) {
比较错误的原因有两个:
*p
是一个整数,而不是像NULL
暗示的指针- 数组不是以 0 结尾的,所以即使
NULL
被当作一个奇特的 0,它也不会工作
你可以试试:
int nums[] = {1, 0};
while(*p)
关于c++ - 使用 c while 循环循环所有整数数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11975699/