Yos*_*osi 3 c++ arrays pointers
我试图使用指针循环一个整数数组,但我得到一个奇怪的值..
int nums[1] = { 1 };
int *p = nums;
while(*p != NULL) {
cout << " LOOPING, p is " << *p << endl;
p++;
}
Run Code Online (Sandbox Code Playgroud)
当我跑步时,我得到下一个输出:
LOOPING, p is 1
LOOPING, p is -858993460
LOOPING, p is 4454504
LOOPING, p is 3032019
Run Code Online (Sandbox Code Playgroud)
为什么我会得到那些奇怪的价值观?我应该只看到"1",因为我循环直到我得到NULL指针,并在每个循环上移动下一个指针.
Run Code Online (Sandbox Code Playgroud)while(*p != NULL) {
比较错误有两个原因:
*p
是一个整数,而不是像NULL
implies 一样的指针NULL
被视为花哨的0,它也行不通你可以尝试:
int nums[] = {1, 0};
while(*p)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8252 次 |
最近记录: |